无法在IE上运行Selenium脚本

时间:2013-08-28 09:29:52

标签: ruby selenium-webdriver

我要在IE 10浏览器上运行Selenium测试。为了运行以下脚本,我做了以下操作:

  1. here
  2. 下载了IEDriverServer(64位,因为我的机器是64位)
  3. 将该(.exe)文件放在'C:// drivers'文件夹
  4. 在环境变量中设置路径'C:// drivers'
  5. 运行脚本

    require 'selenium-webdriver'    
    driver = Selenium::WebDriver.for :ie
    
    driver.get "http://www.google.com"
    
    button = driver.find_element(:id, "gbqfba")
    puts button.text
    driver.quit
    
  6. 将aboe脚本结果运行到以下错误中:

    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/response.rb:51:in `assert_ok': Unable to find element with id == gbq
    fba (Selenium::WebDriver::Error::NoSuchElementError)
            from c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
            from c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:59:in `new'
            from c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:59:in `create_response'
            from c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/default.rb:66:in `request'
            from c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
            from c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:629:in `raw_execute'
            from c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:607:in `execute'
            from c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:575:in `find_element_by'
            from c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/common/search_context.rb:42:in `find_element'
            from ie.rb:7:in `<main>'
    

    使用Chrome和Firefox浏览器可以正常运行相同的脚本。请帮我理解我做错了什么。

3 个答案:

答案 0 :(得分:1)

这里有点预感,但你有没有跟着这个;

在Windows Vista或Windows 7上的IE 7或更高版本中,必须将每个区域的保护模式设置设置为相同的值。只要每个区域的值相同,该值就可以打开或关闭。要设置保护模式设置,请从“工具”菜单中选择“Internet选项...”,然后单击“安全”选项卡。对于每个区域,标签底部将显示一个标记为“启用保护模式”的复选框。

答案 1 :(得分:1)

必需的配置

  1. 必须下载IEDriverServer exectuable并将其放入PATH。

  2. 在Windows Vista或Windows 7上的IE 7或更高版本中,必须将每个区域的保护模式设置设置为相同的值。只要每个区域的值相同,该值就可以打开或关闭。要设置保护模式设置,请从“工具”菜单中选择“Internet选项...”,然后单击“安全”选项卡。对于每个区域,标签底部将显示一个标记为“启用保护模式”的复选框。

  3. 浏览器缩放级别必须设置为100%,以便可以将本机鼠标事件设置为正确的坐标。
  4. 有关详细信息,请转到http://code.google.com/p/selenium/wiki/InternetExplorerDriver

答案 2 :(得分:1)

  • 下载IEDriverserver
  • 提取压缩文件夹并将其添加到“环境变量”路径中。

    我的电脑&gt; (右键单击)属性&gt;高级系统设置&gt;环境变量

  • 单击系统变量下的路径,然后选择编辑。
  • 粘贴驱动程序位置。

enter image description here

  

@driver = Selenium :: WebDriver.for:ie

或|

  

@driver = Selenium :: WebDriver.for:internet_explorer