Python/Selenium中的ElementNotVisibleException错误

Python/Selenium中的ElementNotVisibleException错误,python,selenium,Python,Selenium,我在运行这个Python/Selenium脚本时遇到了这个错误 File "./a.py", line 21, in <module> elem = driver.find_element_by_id("licensees").click() raise exception_class(message, screen, stacktrace) selenium.common.exceptions.ElementNotVisibleException: Message: 当

我在运行这个Python/Selenium脚本时遇到了这个错误

File "./a.py", line 21, in <module>
elem = driver.find_element_by_id("licensees").click()
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: 
当我移除

elem = driver.find_element_by_id("licensees").click()

我没有收到错误。

使用
元素所在位置的可见性
而不是
元素所在位置的存在性

presenceOfElementLocated
不管元素是否可见,它只检查元素是否在页面上

try:
     WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.ID, "licensees"))).click()

使用
located元素的可见性
而不是
located元素的存在性

presenceOfElementLocated
不管元素是否可见,它只检查元素是否在页面上

try:
     WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.ID, "licensees"))).click()
正如其他地方提到的,存在不同于可见度

但是,有了它,你不必考虑:

从capybara.dsl导入页面
第页访问(“…”)
第页.断言标题(“…”)
页面。点击按钮(“被许可方登录”)
在这里,
单击按钮()
等待按钮可交互

(类似地,
assert_title()
等待标题匹配,以防页面需要一段时间才能完全加载。)

如其他地方所述,显示与可见性不同

但是,有了它,你不必考虑:

从capybara.dsl导入页面
第页访问(“…”)
第页.断言标题(“…”)
页面。点击按钮(“被许可方登录”)
在这里,
单击按钮()
等待按钮可交互


(类似地,
assert_title()
等待标题匹配,以防页面需要一段时间才能完全加载。)

您也可以执行单击按钮时执行的脚本。 这样,您就不需要等待元素被单击

    driver.execute_script(
    "myloginwindow1('')"
    )

您还可以执行单击按钮时执行的脚本。 这样,您就不需要等待元素被单击

    driver.execute_script(
    "myloginwindow1('')"
    )