[英]Selenium selector: Issue when using text() in xpath
我有 html 表格,模板如下:
<div class="order__details">
<p><span class="label">Order Status:</span>In Progress</p>
</div>
我想为“进行中”文本获取 XPath; 文本是动态的
我试过了: //div[@class='order__details']/p/text()
但这给了我错误:
OpenQA.Selenium.InvalidSelectorException:无效选择器:xpath 表达式“//div[@class='order__details']/p/text()”的结果是:[object Text]。 它应该是一个元素
您搜索的文本不在您的 span 标签内,这就是您的 xpath 失败的原因。 这个 xpath 表达式应该满足您的需求:
"//div[@class='order__details']/p/text()"
您可以使用以下 XPath 表达式之一:
//span[@class='label'][contains(.,'Order Status:')]/following::text()[1][normalize-space()]
//div[@class="order__details"]/p/text()[normalize-space()]
Output: In Progress
编辑:对于 Selenium,获取文本:
driver.FindElement(By.Xpath("//div[@class='order__details'][./p[contains(.,'Order Status:')]]/p")).Text;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.