Selenium 显式等待在新的 safariDriver 2.48.0 中不起作用

Posted

技术标签:

【中文标题】Selenium 显式等待在新的 safariDriver 2.48.0 中不起作用【英文标题】:Selenium explicit wait not working in new safariDriver 2.48.0 【发布时间】:2017-04-08 09:04:05 【问题描述】:

我的代码中的显式等待在 SafariDriver 2.48.0 中不起作用。它在 Windows 和 MAC 的 chrome 中工作。当达到等待时,它的驱动程序抛出异常

文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/support/wait.py”,第 71 行,直到 值 = 方法(self._driver) 调用中的文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/support/expected_conditions.py”,第 78 行 return _element_if_visible(_find_element(driver, self.locator)) 文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/support/expected_conditions.py”,第 98 行,在 _element_if_visible 返回元素 if element.is_displayed() == visibility else False 文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py”,第 358 行,在 is_displayed return self._execute(Command.IS_ELEMENT_DISPLAYED)['value'] _execute 中的文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py”,第 494 行 return self._parent.execute(命令,参数) 文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py”,第236行,在执行 self.error_handler.check_response(响应) 文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py”,第 163 行,在 check_response 引发异常类(值)

我的代码是:

self.driver = webdriver.Safari()
self.driver.wait = WebDriverWait(self.driver, 60)
self.driver.get("http://example.com")
# Click Sign in button and wait for sign in page
self.driver.find_element_by_xpath(XMLDict['SignIn'].Xpath).click()
self.driver.wait.until(EC.visibility_of_element_located((By.ID, XMLDict['User'].ID)))
self.driver.maximize_window()

配置:

OS - macOS Sierra
Selenium 3.0.1
Safari - 10.0.1
SafariDriver - 2.48.0
Python 3.5

【问题讨论】:

【参考方案1】:

Xpath 不适用于 Safari,尝试使用 CSS_SELECTOR、ID 或 CLASS_NAME 解决您的问题

【讨论】:

以上是关于Selenium 显式等待在新的 safariDriver 2.48.0 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

selenium强制等待,隐式等待,显式等待

Selenium-显式等待

Selenium WebDriver JS - 显式等待

显式等待-----Selenium快速入门

Selenium 显式等待(导入文件夹)

java+selenium+new——显式等待和自定义显式等待