如何知道WebDriver在driver.get(appURL)
之后成功打开了一个URL?我可以看到它在浏览器中打开很好。但我想以编程方式确保。
嘿。在这里我要问driver.get(appURL)是否返回任何响应代码,如http响应。或者我必须从网页上找到一个ID并找到它,然后得出结论,但这种方法看起来太原始了。我正在寻找更简单的解决方案。有人提出了assertTrue,但有些原因是Eclipse给出了很长的错误。
答案 0 :(得分:1)
最简单的方法是断言你打开的网址的页面标题:
String actualTitle = driver.getTitle();
String expectedTitle = "YourExpectedPage"; // replace with the expected page title
org.junit.Assert.assertTrue(expectedTitle.equals(actualTitle));
答案 1 :(得分:0)
您可以等待一段时间并检查预期结果,然后检查当前网址
String currentURL = null;
WebDriverWait wait = new WebDriverWait(driver, 10);
if(driver.findElement(By.xpath("//*[@id='someID']")).isDisplayed()){ //add id or xpath
currentURL = driver.getCurrentUrl();
System.out.println(currentURL);
}
答案 2 :(得分:0)
每个浏览器都有一个默认错误页面。对于chrome我正在使用:
if(driver.findElement(By.xpath("//div[@class='error-code']")).isDisplayed()){
MessageBox.Show("chrome error page.");
}
答案 3 :(得分:0)
尝试使用简单的陈述
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
String baseUrl="https://stackoverflow.com/";
driver.get(baseUrl);
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
if(baseUrl.equals(driver.getCurrentUrl()))
{
System.out.println("URLS are matching");
}else
{
System.out.println("URLS are not matching");
}
答案 4 :(得分:0)
作为End User
我们真的不必担心 WebDriver
实例是否成功打开了网址,因为一旦 {{1} } {/ strong>实例请求WebDriver
,浏览器客户端在打开网页/网站时(默认情况下)返回 URL
document.readyState
到 complete
实例,然后才会执行下一行代码。
但是,作为最终用户,我们可以将 WebDriver
实例配置为对 WebDriver
的不同可用状态进行操作。目前,Selenium在以下3个不同阶段识别 DOM
:
document.readyState
- none
The document is still loading
- eager
The document is interactive
- normal
因此,我们可以编写脚本来配置 The document is complete
实例,以根据您的要求进行响应。