我尝试验证此示例中的文字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示例中的所有文本abve。所以,我认为我可以这样做:
b.find_element_by_xpath('//span[contains(text(),"TEXT")]/..[contains(text(),"Active:")]/a[text()="GAME"]
但我得到NoSuchElement异常。我也试过了:
b.find_element_by_xpath('//*[contains(text(),"Active")]')
仍然一无所获。任何帮助将不胜感激。
答案 0 :(得分:1)
您可以尝试使用此xpath: - //span/following-sibling::text()[2]
driver.find_element_by_xpath(“// span / following-sibling :: text()[2]”)。text;
答案 1 :(得分:1)
要打印元素文本 TEXT ,有效:和游戏,您可以使用以下代码块:
打印 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"))
答案 2 :(得分:1)
回到这一点,我找到了一种方法来实现我原本想要的
b.find_element_by_xpath('//span[contains(text(),"TEXT")]/..[contains(.,"Active:")]/a[text()="GAME"]')
似乎使用text()
仅查看出现在该Web元素上的第一个textNode。但是使用.
会查看该元素的所有textNode以及附加到当前元素“下方”的任何childNode的所有textNode。