gpt4 book ai didi

regex - 为什么 Selenium 在连字符之前插入反斜杠?

转载 作者:行者123 更新时间:2023-12-04 13:42:10 28 4
gpt4 key购买 nike

以下代码在 IE 和 Firefox 中失败。 Chrome 从来没有问题。

foundElement = driver.FindElement(By.Id("btn-GDR"));

它说找不到元素 #btn\-GDR
为什么 Selenium 插入 \ 之前 - ?

火狐 65.0.2 版本
浏览器 11.0.9600.19301

编辑:更多信息:我试过使用

“btn\x2dGDR”表示\x2d 是“-”符号(十六进制中的ASCII),但它不能解决问题。它总是在它之前插入一个“\”。

最佳答案

Selenium转换不同的 Locator Strategies按照 switch - cases 进入它的有效 CSS 选择器类名、id、名称、标签名等通过以下方式转换:

cssEscape(value);

cssEscape(value) 定义为:
private String cssEscape(String using) {
using = using.replaceAll("([\\s'\"\\\\#.:;,!?+<>=~*^$|%&@`{}\\-\\/\\[\\]\\(\\)])", "\\\\$1");
if (using.length() > 0 && Character.isDigit(using.charAt(0))) {
using = "\\" + Integer.toString(30 + Integer.parseInt(using.substring(0,1))) + " " + using.substring(1);
}
return using;
}

因此,您会看到 - 字符是 逃脱 \ 特点。

关于regex - 为什么 Selenium 在连字符之前插入反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55502526/

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