如何解决如何测试跨越多个元素的字符串?
谁能帮我一个相对的XPath表达式,该表达式将验证包含在多个span
元素中的文本
<div id="id1">
<span >Hello </span>
<span class="class2">World </span>
</div>`
我对Selenium还是陌生的,我还没有那么多地使用XPath。我需要一个XPath,它可以在一行(首选结果)甚至文本值列表中返回文本“ Hello World” 。
解决方法
此XPath,
normalize-space(//div[@id="id1"])
将返回第一个div
的空间标准化的字符串值,其id
属性值等于id1
,
Hello World
根据要求。
注释
-
关键概念是元素string-value的概念。
-
如果您不确定
div
中只有一个id="id1"
元素,或者如果您希望XPath与2.0+一起使用,请明确选择仅第一个传递给normalize-space()
:normalize-space((//div[@id="id1"])[1])
另请参见
,我认为这里不需要xpath。
对于您提供的来源,您可以对父div使用.text
,它会返回文本。
这个简单的页面:
<html>
<body>
<div id="id1">
<span >Hello </span>
<span class="class2">World </span>
</div>
</body>
</html>
此代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(r"C:\Git\PythonSelenium\TextSplitOverTags.html")
print(driver.find_element_by_id('id1').text)
输出看起来像在控制台中...
获得输出后,您可以验证文本是否符合预期。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。