gpt4 book ai didi

selenium - 如何为div和span(最好是xpath)之间的文本编写定位符,其中包含不间断空格(&nbsp)

转载 作者:行者123 更新时间:2023-12-03 15:52:45 25 4
gpt4 key购买 nike

我想为以下div编写xpath:

<div class='someclass' id='someid'>:TEST&nbsp;SELENIUM&nbsp;1234<div>


请注意 :


标签可以是div,span或anchor标签之类的任何东西。
&nbsp;可以出现在文本的任何位置。


到目前为止我尝试过的是:

//div[contains(text(),":TEST SELENIUM 1234")]

//div[contains(text(),":TEST{&nbsp;}SELENIUM{&nbsp;}1234")]

//div[contains(text(),":TEST&nbsp;SELENIUM&nbsp;1234")]

//div[normalize-space(text()) = ':TEST SELENIUM 1234']

//div[normalize-space(text()) = ':TEST{&nbsp;}SELENIUM{&nbsp;}1234']

//div[normalize-space(text()) = ':TEST&nbsp;SELENIUM&nbsp;1234']

//div[normalize-space(.) = ':TEST SELENIUM 1234']

//div[normalize-space(.) = ':TEST{&nbsp;}SELENIUM{&nbsp;}1234']

//div[normalize-space(.) = ':TEST&nbsp;SELENIUM&nbsp;1234']

//div[normalize-space(.) = ':TEST{\u00a0}SELENIUM{\u00a0}1234']

//div[normalize-space(.) = ':TEST${nbsp}SELENIUM${nbsp}1234']


对我有用的是什么(感谢@Andersson)

//div[starts-with(text(), ":TEST") and substring(text(), 7)="SELENIUM" and  substring(text(), 16)="1234"]  


这更多的是可以解决的,并且仅适用于已知的字符串。

这些是我已经关注的SO帖子:

Link1
Link2

任何帮助将不胜感激。

最佳答案

根据上面的讨论,您可以使用以下示例xPath builder(JAVA):

public class Test {
public static void main(String[] args) {
String s = ":TEST&nbsp;SELENIUM&nbsp;1234";
String[] parts = s.split("&nbsp;");
StringBuilder xpath = new StringBuilder("//*");

for (int i = 0; i < parts.length; i++){
xpath.append((i == 0) ? "[contains(text(), '" + parts[i] + "')" : " and contains(text(), '" + parts[i] + "')");
}
xpath.append("]");

System.out.println(xpath);
}
}


输出:

//*[contains(text(), ':TEST') and contains(text(), 'SELENIUM') and contains(text(), '1234')]

关于selenium - 如何为div和span(最好是xpath)之间的文本编写定位符,其中包含不间断空格(&nbsp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51719379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com