当前位置: 首页 > 知识库问答 >
问题:

Selenium用于多个浏览器-需要能够执行javascript的webDriver

周昊乾
2023-03-14

我正在帮助建立一个自动化框架来测试我们的网站。由于测试用例必须运行在Chrome、Firefox和IE上,我们目前正在传递一个WebDriver对象作为我们的驱动程序。这个对象实际上是ChromeDriver、FirefoxDriver或InternetExplorerDriver(视情况而定)。

    if (ChromeDriver.class.isInstance(driver)) {
            ChromeDriver chrome = (ChromeDriver)driver;
            chrome.executeScript("window.open()");
        }
    for (String handle : driver.getWindowHandles()) {
            System.out.println(handle);
        }
     public interface SpecialDriver extends WebDriver, JavascriptExecutor {

     }

这似乎行不通--至少,我不能将ChromeDriver分配给SpecialDriver,因为ChromeDriver没有显式实现我的新组合接口,尽管它同时实现了WebDriver和JavaScriptExecutor。我这样做是不是完全找错地方了?提前道谢。

共有1个答案

季骏祥
2023-03-14

正确的方法是执行以下操作:

// WARNING! Untested code. Not guaranteed
// to work or even compile.
// Assume driver is a valid WebDriver object
// TODO: Wrap in try-catch to handle invalid 
// cast exception
 ((JavascriptExecutor)driver).executeScript("return 'your script goes here';");

虽然不能保证WebDriver对象也实现JavascriptExecutor是正确的,但现实情况是,当前的所有实现都是这样做的。

 类似资料:
  • 我将@DataProvider用于Selenium on Java and TestNg项目,特别是用于实现saucelabs所需功能的TestBase类。我担心的是,这段代码返回“NullPointerException”错误,因为数据提供程序值从未被接受。有人能指出我的代码有什么问题吗(使用与示例相同的代码:https://github.com/saucelabs-sample-test-fr

  • 问题内容: 我是硒测试的新手。我想针对Internet Explorer,Firefox,Opera和Chrome在多种浏览器上运行。我必须遵循什么方法。大家能否建议我这是最好的过程。 硒Web驱动程序是否支持多种浏览器??? 我们已经编写了登录脚本。它可以分别在Firefox,Chrome和Internet Explorer中成功运行。但我想按顺序为那些多个浏览器运行它。 问题答案: 在此之前,

  • 问题内容: 我有一种创建2个远程Web驱动程序的方法。一个带有chrome,另一个带有Firefox: Driver.cs 然后我有一个Test类: } 问题是当Driver.Intialize被调用时,它无法同时运行chrome和firefox。我要发生的是,调用Init方法时,它将启动两个浏览器并在每个浏览器中运行测试方法。 问题答案: 我目前使用NUnit的方式。我遇到了同样的问题,找不到使

  • 我正在探索硒网格,用于在多个浏览器上执行测试。我已经按照在线教程配置了集线器和节点。我已经创建了一个测试脚本。 这是测试脚本的代码: 我的目标是在多个浏览器上运行此测试,我已经添加了所需的功能,如火狐, 感谢任何帮助

  • 问题内容: 是否有可用的编程库来解析HTML文档,执行JavaScript,然后允许我浏览DOM?这需要在服务器端而非客户端执行。任何语言都可以,但是首选Java,PHP或Ruby。 问题答案: 在Java中:http : //lobobrowser.org/cobra/java-html- parser.jsp 这是一个可识别Javascript,可识别CSS的HTML解析器 ,它与您的问题有关

  • 问题内容: 我不确定硒中的脚本(自动测试)执行情况。我 想这个过程如下: 执行开始。 selenese命令转换为HTTP请求。 浏览器驱动程序的HTTP服务器接收HTTP请求。 浏览器驱动程序确定实现 命令所需的步骤。 浏览器驱动程序在浏览器上执行它们。 执行状态将发送回浏览器驱动程序的HTTP服务器,然后发送回脚本(IDE)。 我想这就是过程。请在我错的地方纠正我。 问题答案: 在大胆和在箱子里