簡體   English   中英

如何在Selenium Webdriver(Java)中找到包含特定文本的元素?

[英]How do I find an element that contains specific text in Selenium Webdriver (Java)?

我試圖從每個刷新后具有不同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:沒有這樣的元素:無法找到元素:{“method”:“xpath”,“selector”:“// * [contains(@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>
@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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM