使用 selenium web 驱动程序在多个浏览器上运行测试

2024-01-04

我试图通过 for 循环在多个浏览器上运行相同的测试,但它始终只在 Firefox 上运行。

bros = ['FIREFOX','CHROME','INTERNET EXPLORER']

for bro in bros:
    print "Running "+bro+"\n"
    browser = webdriver.Remote(
                    command_executor='http://10.236.194.218:4444/wd/hub',
                    desired_capabilities={'browserName': bro,
                                          'javascriptEnabled': True})
    browser.implicitly_wait(60000)
    browser.get("http://10.236.194.156")

一个有趣的观察;当我包含参数时platform: WINDOWS它仅在 Internet Explorer 上运行。

Selenium Webdriver 是这样工作的还是我的理解是错误的?


我实际上已经在java中完成了这个,以下对我来说效果很好:

...
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
...

DesiredCapabilities[] browsers = {DesiredCapabilities.firefox(),DesiredCapabilities.chrome(),DesiredCapabilities.internetExplorer()};
    for(DesiredCapabilities browser : browsers)
    {
        try{
            System.out.println("Testing in Browser: "+browser.getBrowserName());
            driver = new RemoteWebDriver(new URL("http://127.0.0.1:4444/wd/hub"), browser);
            ...

当然,如果您用不同的语言编写测试,则需要对此进行调整,我知道在 Java 中这是可能的,但不确定其他语言。

另外,我同意你想要做的事情,我认为最好有一个类在不同的浏览器上运行相同的测试,而不是多次重复代码并且变得不优雅。如果您在 Java/其他代码中执行此操作,我也强烈建议使用页面对象 http://code.google.com/p/selenium/wiki/PageObjects.

祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 selenium web 驱动程序在多个浏览器上运行测试 的相关文章

随机推荐