【发布时间】:2015-06-22 20:52:40
【问题描述】:
我正在尝试使用 Selenium 创建一个显式等待,当无法访问某个页面时,它会等待 Internet Explorer 中“无法显示此页面”消息的可见性。当然,Selenium 在 xpath 中的撇号存在问题。我正在使用的代码如下...
String expectedText = "This page can't be displayed";
String waitforXpath = "//div[contains(.,'"+expectedText+"')]";
WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(waitforXpath)));
当然,Selenium 会抛出 TimeoutException 等待“无法显示此页面”元素的可见性。有关如何最好地解决此问题的任何建议?
编辑:这是该页面的来源...
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" type="text/css" href="NewErrorPageTemplate.css" >
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>This page can't be displayed</title>
<script src="errorPageStrings.js" language="javascript" type="text/javascript">
</script>
<script src="httpErrorPagesScripts.js" language="javascript" type="text/javascript">
</script>
</head>
<body onLoad="javascript:getInfo();">
<div id="contentContainer" class ="mainContent">
<div id="mainTitle" class="title">This page can't be displayed</div>
<div class="taskSection" id="taskSection">
<ul id="cantDisplayTasks" class="tasks">
<li id="task1-1">Make sure the web address <span id="webpage" class="webpageURL"></span>is correct.</li>
<li id="task1-2">Look for the page with your search engine.</li>
<li id="task1-3">Refresh the page in a few minutes.</li>
</ul>
<ul id="notConnectedTasks" class="tasks" style="display:none">
<li id="task2-1">Check that all network cables are plugged in.</li>
<li id="task2-2">Verify that airplane mode is turned off.</li>
<li id="task2-3">Make sure your wireless switch is turned on.</li>
<li id="task2-4">See if you can connect to mobile broadband.</li>
<li id="task2-5">Restart your router.</li>
</ul>
</div>
<div><button id="diagnose" class="diagnoseButton" onclick="javascript:diagnoseConnectionAndRefresh(); return false;">Fix connection problems</button></div>
</div>
</body>
</html>
【问题讨论】:
-
使用不同的 XPath、CSS 或其他任何东西......如果没有看到 HTML 的相关部分,我们无法帮助您。
-
您尝试使用 ID
By.Id("mainTitle")吗? -
@Sham 理想情况下,我希望指定“无法显示此页面”消息,因为任何页面都可以有一个 ID 为
mainTitle的元素,不一定说“此页面无法显示” -
没错,你为什么不获取元素并检查它的文本!
-
@Sham 你如何将它合并到 WebDriver 等待中,就像我正在尝试做的那样?
标签: java internet-explorer selenium selenium-webdriver