“ie驱动程序的命令行服务器已停止工作”和“这是WebDriver服务器的初始启动页面”错误

时间:2017-10-10 18:44:22

标签: python selenium internet-explorer-8 webdriver

我正在尝试使用Selenium Webdriver测试仅在Internet Explorer 8中运行的系统。

我已经下载了最新版本的IE webdriver和一个旧版本,但其中任何一个都无效。我在“Internet选项”上设置了安全配置,就像我在这里读过的一些答案和系统变量一样。

我使用www.google.com这样的简单网址测试了我的系统是否有问题但是发生了相同的错误。

我正在用Python编写脚本,下面是一个例子:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.common.action_chains import ActionChains
import unittest, time, re

class testAccess(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Ie("C:\\PythonXX\\Drivers\\IEDriverServer.exe")
        self.driver.implicitly_wait(30)
        self.driver.maximize_window()
        # URL
        self.base_url = "http://www.google.com"
        self.verificationErrors = []
        self.accept_next_alert = True

    def test_Logon(self):
        driver = self.driver
        driver.get(self.base_url + "/")
        time.sleep(3)

        driver.find_element_by_id("username").send_keys("username")

        driver.find_element_by_id("password").send_keys("password")

        driver.find_element_by_id("logIn").click()
        time.sleep(5)

    def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException as e: return False
        return True

    def is_alert_present(self):
        try: self.driver.switch_to_alert()
        except NoAlertPresentException as e: return False
        return True

    def close_alert_and_get_its_text(self):
        try:
            alert = self.driver.switch_to_alert()
            alert_text = alert.text
            if self.accept_next_alert:
                alert.accept()
            else:
                alert.dismiss()
            return alert_text
        finally: self.accept_next_alert = True

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

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

当我执行此脚本时,IE将打开并返回消息“这是WebDriver服务器的初始启动页面”。执行脚本时打开的控制台崩溃并返回错误:“驱动程序的命令行服务器已停止工作”。

在Selenium文档中,听起来很清楚使用webdrivers,但没有解释旧版Internet Explorer中的用法。我不知道我到底做错了什么,而且我已经阅读了很多没有帮助的答案。

1 个答案:

答案 0 :(得分:1)

哦,对!我解决了下载http://selenium-release.storage.googleapis.com/index.html上可用的第一版IEDriverServer(2.39)的问题。

除此之外,我完成了https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

中描述的必需配置

现在正在运作!哈哈:)