这个测试:
@when('voter clicks "{b}"')
def step(context, b):
context.browser.find_element_by_name(button).click()
抛出:
ElementNotVisibleException: Message: An element command
could not be completed because the element is not visible on the page. (WARNING: The server did not provide any stacktrace information)
所以我加了一个
print(context.browser.find_element_by_name(button).is_displayed())
在 Safari 9.1 中,它返回 True,但在 10.1 中它返回 False。
当 HTML 和 JS 两者相同时,这可能是什么原因?
如何让它在 Safari 10 中运行?
e1: 添加等待无效:
element = WebDriverWait(context.browser, 10).until(
EC.presence_of_element_located((By.NAME, b))
)
最佳答案
在 Yosemite Safari 10 上不包含 Safari 驱动程序,您应该降级您的 selenium 版本 2.48.0 Selenium version 2.48.0 .或者将您的操作系统更新到 macOS Sierra Read it here .
或者将您的 Safari 驱动程序版本更新到 10.0.2 beta 2。
关于javascript - Selenium - ElementNotVisibleException。元素在 Safari 9.1 中可见,但在 10.1 中不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893203/