我正在帮助建立一个自动化框架来测试我们的网站。由于测试用例必须运行在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。我这样做是不是完全找错地方了?提前道谢。
正确的方法是执行以下操作:
// 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)。 我想这就是过程。请在我错的地方纠正我。 问题答案: 在大胆和在箱子里