【发布时间】:2019-10-29 15:27:12
【问题描述】:
基本上我需要点击一个按钮,该按钮位于网页的框架内。我试过了:
1) 切换到框架,效果很好,不返回任何错误:
driver.switch_to.frame(driver.find_element_by_css_selector('#iframe'))
3) 添加 20 秒的时间延迟,这不会改变结果,因为它最终只是超时:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "dx-button"))).click()
我相信 CSS 元素的名称是正确的,因为我使用开发者模式 -> 复制选择器复制了它。
为了让 selenium 找到这个 CSS 元素,我还能做些什么吗?
添加延时前的错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"dx-button"}
添加延时后报错:
selenium.common.exceptions.TimeoutException: Message:
谢谢。
【问题讨论】:
-
使用相关的 HTML 更新您的问题。
-
您的等待没问题...我猜您的定位器已关闭,但我们需要 HTML 才能弄清楚。
标签: python css selenium webdriver frame