2016-11-24 85 views
0

我的代碼中的顯式等待在SafariDriver 2.48.0中不起作用。它在windows和MAC中使用chrome。到達等待時,它的驅動程序引發異常Selenium顯式等待不工作在新的safariDriver 2.48.0

文件「/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/support/wait.py」第71行,直到 value = method(self._driver) 文件「/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/support/expected_conditions.py」 ,line 78,in call return _element_if_visible(_find_element(driver,self.locator)) File「/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver /support/expected_conditions.py「,第98行,在_element_if_visible中 return element if element.is_displayed()== visibility else False File「/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'] File「/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver /remote/webelement.py「,第494行,在_execute中 return self._parent.execute(command,params) File」/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-包/硒/ webdri版本/遠程/ errorhandler.py」,線路163,在check_response 加註exception_class(值)

我的代碼是:

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 

回答

0

XPath不使用Safari瀏覽器,嘗試使用CSS_SELECTOR,ID或CLASS_NAME解決您的問題