是否可以用Selenium2测试IE6以及如何使用“seleniumProtocol”:“Selenium”?

时间:2013-02-19 12:10:25

标签: selenium-webdriver selenium-grid

我在使用Selenium2测试IE6时遇到了这个问题。我使用Perl绑定(Selenium::Remote::Driver)但我会非常感谢任何建议,即使他们来自有Selenium for Java等经验的人。

问题在于,当我尝试这样做时:

my %opt = (
   browser_name    => 'internet explorer',
   version         => '6',
   platform        => 'WINDOWS',
   proxy           => {
       proxyType => 'direct',
   }
);
my $driver = Selenium::Remote::Driver->new(%opt);
$driver->get('http://www.google.com');
my $elem = $driver->find_element('gs_htif0', 'id');
$elem->send_keys('fooooooo');

浏览器打开,但随后测试消失了An element could not be located on the page using the given search parameters: gs_htif0,id at ...消息,而在IE7中一切正常,IE驱动程序的文档说IE6已经过测试

之后我尝试用"seleniumProtocol": "Selenium"启动一个节点,我认为这是测试任何没有驱动程序的浏览器的选项,因此可以用旧的“JavaScript模拟”方式测试它。用户操作,但随后浏览器根本没有启动,测试因消息java.lang.NullPointerException: sessionId should not be null; has this session been started yet?

而死亡

我的hub-config是:

{
    "host": null,
    "port": 4444,
    "newSessionWaitTimeout": -1,
    "servlets" : [],
    "prioritizer": null,
    "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
    "throwOnCapabilityNotPresent": true,
    "nodePolling": 5000,

    "cleanUpCycle": 5000,
    "timeout": 300000,
    "browserTimeout": 0,
"maxSession": 5
}

我的node-config是:

{
    "capabilities":
    [
        {
            "platform": "WINDOWS",
            "browserName": "internet explorer",
            "version": "6",
            "seleniumProtocol": "WebDriver",
            "ensureCleanSession": true
        }
    ],
    "configuration":
    {
        "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
        "maxSession": 1,
        "port": 5555,
        "host": "192.168.1.6",
        "register": true,
        "registerCycle": 5000,
        "hubPort": 4444,
        "hubHost": "192.168.1.34"
    }
}

start node命令为java -jar selenium-server-standalone-2.29.0.jar -role node -nodeConfig node_ie6_conf.json -Dwebdriver.ie.driver="IEDriverServer_2.29x32.exe" > nul

启动集线器命令为java -jar selenium-server-standalone-2.29.0.jar -role hub -hubConfig hub_conf.json &> dev/null

任何人都可以帮助我吗?我的谢意。


更新 对于我的问题的第二部分,我认为Selenium :: Remote :: Driver仅适用于webDriver协议,但我不确定

1 个答案:

答案 0 :(得分:0)

对于我的问题的第一部分,答案是“是的,这是可能的”。假设一个人正确设置了hub,node和InternetExplorerDriver,她只需要在IE设置窗口的“安全”选项卡中配置安全设置(打开服务 - >互联网选项)。在那里,她必须将滑块向下移动一点,为“本地内联网”设置“中等”级别。

很抱歉截图不是英文的,但我没有英文版的XP,我想很清楚在哪里找到这个:

enter image description here

在我改变安全设置之后,我立即在IE7中遇到同样的问题后,我意外地找到了答案,所以它暗示我在哪里寻找。

但第二部分how to use "selenium protocol"仍未解决。