Javascript 如何为介于before::和after:之间的文本编写定位器:
我正在尝试为下面的文本编写xpath,当在chropath(chrome插件)中突出显示时,它可以正常工作。但是在运行时它失败了,尽管它在应用程序中是可见的。我在谷歌上找不到正确的答案。请帮我解决这个问题Javascript 如何为介于before::和after:之间的文本编写定位器:,javascript,selenium,selenium-webdriver,xpath,css-selectors,Javascript,Selenium,Selenium Webdriver,Xpath,Css Selectors,我正在尝试为下面的文本编写xpath,当在chropath(chrome插件)中突出显示时,它可以正常工作。但是在运行时它失败了,尽管它在应用程序中是可见的。我在谷歌上找不到正确的答案。请帮我解决这个问题 <div class="abc"> ::before <content style="">Please fill out this field.</content> ::after </div> ::之前 请填写这个字段。 ::之后 xpa
<div class="abc">
::before
<content style="">Please fill out this field.</content>
::after
</div>
::之前
请填写这个字段。
::之后
xpath://div[@class='abc']//content[包含(text(),\“请填写此字段\”)
您需要
//span[@class="order-num"]/text()
要获取所需值,请尝试对text()使用单引号
//div[@class='abc']//内容[包含(text(),'Please fill this field')]
或
直接指向内容,如
//content[contains(text(),'Please fill out this field')]
听起来有点奇怪,但是当使用
标记成功时,text()
函数有时会失败:
let xpath=“//div[@class='abc']//content[包含(,'Please fill this field')”;
如果仍然失败,请确保class
属性不包含多个值,在这种情况下,还需要在类上使用contains()
:
let xpath=“//div[contains(@class,'abc')]//content[contains(,'Please fill this field')”;
根据您共享的HTML,很明显,包含动态元素。因此,要识别文本为的节点,请填写此字段。您可以使用以下任一解决方案:
- CSS选择器:
- xpath:
order num
的元素吗?还是一个
元素?
div.abc content[style]
//div[@class='abc']//content[@style and contains(., 'Please fill out this field')]