Selenium - ElementNotVisibleException。元素在Safari 9.1中可见,但在10.1中不可见?

时间:2017-10-23 15:34:59

标签: javascript selenium safari

这个测试:

@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))
)

1 个答案:

答案 0 :(得分:1)

在Yosemite Safari 10上不包含Safari驱动程序,您应该降级硒版本2.48.0 Selenium version 2.48.0。或者将您的操作系统更新为macOS Sierra Read it here

或者将您的Safari驱动程序版本更新为10.0.2 beta 2.