[英]How to quit modal dialog window in selenium headless browser?
我正在為項目使用selenium2 + python +亞馬遜ec2(Ubuntu 11.04)。
由於Amazon ec2中沒有Head的原因,我正在使用PyVirtualDisplay,因為服務器中沒有顯示。
當我運行項目時,出現異常
Traceback (most recent call last):
File "spyfu_ad_crawler_server.py", line 68, in <module>
main(i[0])
File "spyfu_ad_crawler_server.py", line 34, in main
WebDriverWait(browser, 10).until(lambda driver : driver.find_element_by_xpath("/html/body/form/div[3]/div[3]/div/div/table/tbody/tr[3]/td/tab le/tbody/tr[2]/td/table/tbody"))
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/support/wait.py", line 49, in until
value = method(self._driver)
File "spyfu_ad_crawler_server.py", line 34, in <lambda>
WebDriverWait(browser, 10).until(lambda driver : driver.find_element_by_xpath("/html/body/form/div[3]/div[3]/div/div/table/tbody/tr[3]/td/table/tbody/tr[2]/td/table/tbody"))
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 210, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 645, in find_element
{'using': by, 'value': value})['value']
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 153, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 147, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: u'Modal dialog present'
Traceback (most recent call last):
File "spyfu_ad_crawler_server.py", line 75, in <module>
browser.get(base_url)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 165, in get
self.execute(Command.GET, {'url': url})
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 153, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 147, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: u'Modal dialog present'
應該如何解決?
如何在python中的硒中處理此類對話框?
請在執行driver.get()之前和之后運行以下代碼:
driver.execute_script('window.onbeforeunload = function() {}')
它應該工作。 我尚未檢查,但Firefox網站應該對此事件有更多詳細信息。
基本上,您是在提供該模式對話框的網頁中重置處理程序。 因此,您將不會看到它的顯示。 這種方法幾乎解決了我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.