有没有办法使用Selenide获取每个运行线程的当前浏览器名称
我将TestNG Cucumber与多个浏览器集成<所以我需要知道@After hook上哪个浏览器正在运行测试<基于浏览器做一些事情。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="8" parallel="tests" >
<test name="ChromeTest">
<parameter name="browser" value="chrome" />
<classes>
<class name="com.site.runner.TestRunner">
</class>
</classes>
</test>
<test name="FirefoxTest">
<parameter name="browser" value="firefox" />
<classes>
<class name="com.site.runner.TestRunner">
</class>
</classes>
</test>
<test name="SafariTest">
<parameter name="browser" value="safari" />
<classes>
<class name="com.site.runner.TestRunner">
</class>
</classes>
</test>
</suite>
硒化物设定驱动器
public static synchronized void setDriver(String browser) {
setBrowser(browser);
}
public String setBrowser(String browser){
switch(browser){
case "chrome":
return setCapabilities(browser);
case "firefox":
return Configuration.browser = "firefox";
case "edge":
return Configuration.browser = "edge";
default:
return "No Browser found";
}
public static void directToBrowserUrl(String browserUrl) {
open(browserUrl);
}
在@After
方法中获取驱动程序的
功能
和当前线程
。
代码:
Capabilities capabilities = ((RemoteWebDriver) driver).getCapabilities();
String browserName = capabilities.getBrowserName();
String threadName = Thread.currentThread().getName();
long threadId = Thread.currentThread().getId();
System.out.println("Thread name & browser name: "+threadName +" --> "+browserName);
System.out.println("Thread id & browser name: "+threadId +" --> "+browserName);
if(browserName.equalsIngnoreCase("Chrome"){
//do your stuff
}
输出:
Thread name & browser name: com.CallerScript.Caller.main() --> chrome
Thread id & browser name: 16 --> chrome
我正在用cucumber和硒网络司机一起工作。我的测试工作与预期的组合。为了实现跨浏览器测试,我添加了TestNG框架。为了验证我的跨浏览器测试运行良好,我单独使用TestNG运行了它,没有使用cucumber。它在Chrome和火狐浏览器中都运行完美。 } 测试开始了。xml文件: 我需要将TestNG测试与Cucumber设置相集成,这样我就可以用Cucumber运行整个测试。为此,我将cuc
问题内容: 我正在将Selenium WebDriver与Java和TestNG框架一起使用。我想一次在一个代码中使用Firefox,IE,Chrome来进行跨浏览器测试。我只能将Firefox初始化为 但无法以相同方式初始化其他浏览器。例如: 给出错误 给出错误 如何初始化IE和Chrome并在所有所需的浏览器中执行测试? 问题答案: 对于C# 加 创建一个包含浏览器名称的配置文件。实现与配置文
我已经创建了一个测试套件,使用数据提供商数据工厂和我的TestNG文件发送浏览器详细信息作为参数。在testNG XML中,我调用我的数据工厂类。我也在使用浏览器堆栈进行测试(尽管我怀疑这与我遇到的问题有关) 当我不向testng文件添加parrelell=“true”时,测试运行没有任何问题。 我有一种感觉,这与每个浏览器使用的是同一个驱动程序有关,但我目前无法解决这个问题。 感谢您的指导。 这
我试图在浏览器堆栈上运行多个浏览器上的E2E测试,我参考了在量角器中的多个/并行浏览器上的E2E测试?和Internet Explorer Selenium量角器e2e测试 但每次我试着运行测试时都会犯错- 谁能告诉我什么是我做错了这里,而且我们使用gulp ti运行规范,但我的问题是它是说,甚至没有超出认证。
问题内容: 我有一种创建2个远程Web驱动程序的方法。一个带有chrome,另一个带有Firefox: Driver.cs 然后我有一个Test类: } 问题是当Driver.Intialize被调用时,它无法同时运行chrome和firefox。我要发生的是,调用Init方法时,它将启动两个浏览器并在每个浏览器中运行测试方法。 问题答案: 我目前使用NUnit的方式。我遇到了同样的问题,找不到使
我有一个有很多功能的项目,我想在不同的浏览器中并行运行一个测试,使用cucumber jvm插件 在我的POM里。XML i添加了cucumber jvm和maver surefire两个插件 我创建runnerClass并添加: 现在,我无法运行测试,如何使用cucumber jvm或selenium网格并行运行浏览器中的不同功能