在Windows上使用selenium驱动程序的python脚本出错

时间:2018-01-17 16:41:22

标签: python-3.x selenium selenium-webdriver selenium-chromedriver

案例1

当我尝试使用selenium驱动程序执行简单的python脚本时,我遇到了以下错误。

extension NSObject  {
    var dynamic_type : String {
        get {
            return String(describing: type(of: self))
        }
    }
}

当我运行此脚本时,我的Chrome会被打开,我会遇到异常,程序会自动停止

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class PythonOrgSearch(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chrome.exe')

    def test_search_in_python_org(self):
        driver = self.driver
        driver.get("http://www.python.org")
        self.assertIn("Python", driver.title)
        elem = driver.find_element_by_name("q")
        elem.send_keys("pycon")
        elem.send_keys(Keys.RETURN)
        assert "No results found." not in driver.page_source


    def tearDown(self):
        self.driver.close()

if __name__ == "__main__":
    unittest.main() 

注意:我已经安装了chrome驱动程序,

selenium.common.exceptions.WebDriverException: Message: Service C:\Program Files (x86)\Google\Chrome\Application\chrome.exe unexpectedly exited. Status code was: 0

1 个答案:

答案 0 :(得分:0)

要使用selenium驱动程序执行简单的python脚本,您需要考虑以下几点:

  • 在初始化webdriver实例时,您不需要传递chrome二进制位置。但是您必须传递chromedriver二进制文件的位置,该位置可以从此link下载并作为参数传递,如下所示:

    driver = webdriver.Chrome(executable_path="C:\\path\\to\\chromedriver.exe")
    
  • 而不是使用driver.close()总是使用driver.quit(),它会销毁webdriverWeb Browser实例,如下所示:

    self.driver.quit()