SeleniumJava正在打开两个Firefox实例
我刚刚开始学习SeleniumJava。 我有这个测试代码,它基本上只是打开google.com页面,获取它的标题,并断言标题。我的问题是每次运行测试时,Firefox都会被调用两次。我已经搜索了可能的问题,尝试了一些修复方法。但对我来说什么都不管用。。已尝试将“@BeforeTest”更改为“@BeforeClass”和“@Before”,但仍然相同 firefox版本:55.0.3 selenium版本:3.5.3 壁虎河:0.19.0 这是我的密码:SeleniumJava正在打开两个Firefox实例,java,selenium,Java,Selenium,我刚刚开始学习SeleniumJava。 我有这个测试代码,它基本上只是打开google.com页面,获取它的标题,并断言标题。我的问题是每次运行测试时,Firefox都会被调用两次。我已经搜索了可能的问题,尝试了一些修复方法。但对我来说什么都不管用。。已尝试将“@BeforeTest”更改为“@BeforeClass”和“@Before”,但仍然相同 firefox版本:55.0.3 selenium版本:3.5.3 壁虎河:0.19.0 这是我的密码: public class ATest
public class ATest {
public String baseURL = "http://google.com";
public WebDriver driver;
@BeforeTest
public void setBaseURL() {
driver = new FirefoxDriver();
driver.get(baseURL);
}
@Test
public void verifyHomePageTitle() {
setBaseURL();
String expectedTitle = "Google";
String actualTitle = driver.getTitle();
Assert.assertEquals(actualTitle, expectedTitle);
}
}
我没有在Java中使用Selenium,只在Ruby中使用。但我的猜测是,
@BeforeTest
指令使setBaseURL()在每次测试之前执行。这是您第一次打开浏览器。稍后在实际测试中,您要做的是再次运行setBaseURL(),这将打开第二个浏览器
从verifyHomePageTitle()中删除setBaseURL(),或在测试之前执行BeforeTest之前删除
@BeforeTest
@BeforeTest,因此您需要从测试中删除setBaseURL()。无论如何,它将在它之前运行 get
方法被调用两次,因此它会加载页面两次。通过调用setBaseURL
,在@Test
中一次进入@BeforeTest
,在@Test
中第二次进入。从@BeforeTest
中删除setBaseURL
,在实际的@Test
方法中移动get
方法,您应该会没事的
下面是Javadoc对get
方法的介绍
void get(java.lang.String url)
Load a new web page in the current browser window.
得到
void get(java.lang.String url)
在当前浏览器窗口中加载新网页。这是使用HTTP GET操作完成的,该方法将阻塞,直到加载完成。这将遵循服务器发出的重定向,或者作为返回HTML中的元重定向。如果元重定向“rest”一段时间,最好等到该超时结束,因为如果在测试执行期间基础页面发生更改,那么针对该接口的未来调用的结果将针对新加载的页面。WebDriver.Navigation.to(字符串)的同义词
参数:url-要加载的url。最好使用完全限定的URL
供参考的链接
- Java文档:
verifyHomePageTitle
内调用setBaseUrl
。让测试框架调用这些方法。测试框架调用setBaseURL
,然后调用verifyHomePageTitle
。由于您在测试方法中调用了asBaseURL
,因此它被调用了两次(一次由框架调用,一次由您调用)。在测试中,setBaseUrl方法被调用了两次,在测试之前和测试期间。当您完全删除@BeforeTest并再次运行它时会发生什么?非常感谢大家!。非常感谢您,先生!:)np,若它帮助你们解决了问题,那个就投票赞成吧:)非常感谢。。这就是为什么。
public class ATest {
public String baseURL = "http://google.com";
public WebDriver driver;
@BeforeTest
public void setBaseURL() {
driver = new FirefoxDriver();
}
@Test
public void verifyHomePageTitle() {
driver.get(baseURL);
String expectedTitle = "Google";
String actualTitle = driver.getTitle();
Assert.assertEquals(actualTitle, expectedTitle);
}
}