提问人:user3595231 提问时间:10/24/2023 更新时间:10/24/2023 访问量:21
无法使用 XPATH 与特殊情况下提交的文本进行交互
Not able to use XPATH to interactive with the text filed in my special case
问:
从下图中,我正在尝试清除“服务器地址”字段,并输入一个新值。但不知何故,它一直给我超时异常。
这是我的通用 Python 代码。我可以尝试其他方法吗?
try:
target = "//label[contains(text(), 'Server address')]/following-sibling::input"
WebDriverWait(self.driver, 30).until(
EC.presence_of_element_located((By.XPATH, target))).clear()
WebDriverWait(self.driver, 30).until(
EC.presence_of_element_located((By.XPATH, target))).send_keys(var)
except Exception as e:
....
感谢您的帮助。
千斤顶
答:
1赞
kenneth
10/24/2023
#1
我看到 XPath 存在于 .在处理 iframe 时,有一种特定的方法,您可以在此处阅读。但简单来说,这意味着:您需要切换到 iframe,它被 Selenium 视为一个单独的窗口。iframe
- 为您尝试交互的 HTML 元素的祖先编写一个 XPath
iframe
- 根据您使用的正确语言使用 Selenium 文档
- 成功切换到 后,您现在可以与正确的 HTML 元素进行交互
iframe
//label[contains(text(), 'Server address')]/following-sibling::input
1赞
KunduK
10/24/2023
#2
您尝试访问的元素位于 .您需要切换到 first 才能访问该元素。iframe
iframe
WebDriverWait(driver, 30).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, "iframe#main")))
try:
target = "//label[contains(text(), 'Server address')]/following-sibling::input"
WebDriverWait(self.driver, 30).until(
EC.element_to_be_clickable((By.XPATH, target))).clear()
WebDriverWait(self.driver, 30).until(
EC.element_to_be_clickable((By.XPATH, target))).send_keys(var)
except Exception as e:
评论