簡體   English   中英

硒python xpath在頁面上找不到元素text()

[英]selenium python xpath trouble finding element text() on page

我正在嘗試驗證文本Active:從此示例

<div class="details">
    <p class="double">
        <a href="url">Set as default</a>
        <br>
        <a id="modal124434" class="modalAction" href="#">Delete</a>
    </p>
    <span class="bold">TEXT</span>
    : 1234567890 (12/2017)
    <br>
    Active:
    <a class="game" href="#GAME">GAME</a>
</div>

我還需要檢查TEXT以確保它在那里。 我使用以下內容找到TEXT

foo = b.find_element_by_xpath('//span[contains(text(),"TEXT")]/..')

當我print(foo.text)我可以從html示例中看到所有文本。 所以,我認為我可以做這樣的事情:

b.find_element_by_xpath('//span[contains(text(),"TEXT")]/..[contains(text(),"Active:")]/a[text()="GAME"]

但我收到了NoSuchElement異常。 我也嘗試過:

b.find_element_by_xpath('//*[contains(text(),"Active")]')

仍然一無所獲 任何幫助將非常感激。

您可以嘗試以下xpath:- //span/following-sibling::text()[2]

driver.find_element_by_xpath(“ // span / following-sibling :: text()[2]”)。text;

要打印元素文本TEXTActive:GAME ,可以使用以下代碼塊:

  • 要打印TEXT

     print(b.find_element_by_xpath("//div[@class='details']//span[@class='bold']").get_attribute("innerHTML")) 
  • 要打印Active:

     fullsting = b.find_element_by_xpath("//div[@class='details']").get_attribute("innerHTML") part_word = fullsting.split(")") words = part_word[1].split("G") print(words[0]) 
  • 要打印GAME

     print(b.find_element_by_xpath("//div[@class='details']//a[@class='game']").get_attribute("innerHTML")) 

回到這一點,我找到了一種方法來做我本來想要的

b.find_element_by_xpath('//span[contains(text(),"TEXT")]/..[contains(.,"Active:")]/a[text()="GAME"]')

似乎使用text()僅查看出現在該Web元素上的第一個textNode。 但使用. 查看該元素的所有textNode以及附加到當前元素“之下”的任何childNode的所有textNode。

暫無
暫無

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

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