繁体   English   中英

Selenium 选择器:在 xpath 中使用 text() 时出现问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM