我正在尝试从每次刷新后具有不同ID的元素获取ID,然后打印出来
网站上的元素代码为:<div id="time_2019-03-28 07:36:50.604535">This element has a ID that changes every time the page is loaded</div>
我的代码:
WebElement randomID = driver.findElement(By.xpath("//*[contains(@id, 'time')]"));
System.out.println("Random ID is " + randomID.getAttribute("id"));
错误:线程“ main”中的异常org.openqa.selenium.NoSuchElementException:否这样的元素:无法找到元素:{“方法”:“ xpath”,“选择器”:“ // * [包含(@id ,'time')]“}
编辑: 完整HTML:
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>Selenium: Beginners Guide</title>
<link type="text/css" rel="stylesheet" href="/styles/seleniumbeginners.css">
<script src="chrome-extension://mooikfkahbdckldjjndioackbalphokd/assets/prompt.js"></script></head>
<body>
<div class="mainheading">Selenium: Beginners Guide</div>
<div class="mainbody">
<div><a href="/">Index</a></div>
<div id="find">This item div has the id of find<br>
put find into the target of Selenium IDE<br>
and click the find button</div>
<div id="divontheleft" class="leftdiv">
<input id="but1" value="Button with ID" type="button">
<br>
<input value="Sibling Button" type="button">
</div>
<div id="divontheleft2"><input name="but2" value="Button with name" type="button"><br>
<input id="random" type="button" value="Random"></div>
<div id="divinthecenter" class="centerdiv"><input type="button" name="verifybutton" value="Verify this button
here"><br><input type="button" name="verifybutton1" value="chocolate"></div>
<div id="time_2019-03-29 07:08:53.435150">This element has a ID that changes every time the page is loaded</div>
</div>
<script type="text/javascript">
var randomButton;
randomButton = document.getElementById('random');
randomButton.addEventListener('click',function(e){
but1 = document.getElementById('but1');
but1.style.position = 'absolute';
but1.style.top = 10 * Math.floor(Math.random() * 50);
but1.style.left = 10 * Math.floor(Math.random() * 50);
}, true);
</script>
</body></html>
答案 0 :(得分:0)
@Test
public void p0l0() throws InterruptedException {
driver.get("file:\\C:\\Users\\pburgr\\Desktop\\p0l0.html");
Thread.sleep(5000);
List<WebElement> divsContainingId = driver.findElements(By.xpath("//div[contains(@id,'time')]"));
String divsContainingIdSize = Integer.toString(divsContainingId.size());
System.out.println(divsContainingIdSize);
String id = divsContainingId.get(0).getAttribute("id");
System.out.println(id);
}
给我:
Starting ChromeDriver 2.42.591088 (7b2b2dca23cca0862f674758c9a3933e685c27d5) on port 4982
Only local connections are allowed.
Bře 29, 2019 9:30:52 DOP. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
1
time_2019-03-29 07:08:53.435150