Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在xpath webdriver java中避开反斜杠_Java_Selenium_Xpath - Fatal编程技术网

如何在xpath webdriver java中避开反斜杠

如何在xpath webdriver java中避开反斜杠,java,selenium,xpath,Java,Selenium,Xpath,我使用xpath和Selenium web驱动程序Java来定位使用id的元素,其id如下所示: 名称\params\etc 为了用java表示这一点,我使用 String id = "\\name\\params\\etc" driver.findElement(By.xpath("//"+"a"+"[@id='"+id+"']")); 请告诉我如何解决此问题。可能这就是您正在寻找的: driver.findElement(By.xpath("//"+"a"+"[@id='"+id.subs

我使用xpath和Selenium web驱动程序Java来定位使用id的元素,其id如下所示:

名称\params\etc

为了用java表示这一点,我使用

String id = "\\name\\params\\etc"
driver.findElement(By.xpath("//"+"a"+"[@id='"+id+"']"));

请告诉我如何解决此问题。

可能这就是您正在寻找的:

driver.findElement(By.xpath("//"+"a"+"[@id='"+id.substring(2)+"']"));
或者您可以尝试:

driver.findElement(By.xpath("//"+"a"+"[@id='"+id.replace("\\","\")+"']");
取决于预期结果-要转义哪个反斜杠

要根据定义的id字符串生成精确的给定id,您可以按照如下操作:

driver.findElement(By.xpath("//"+"a"+"[@id='"+id.substring(2).replace("\\","\")+"']"));

您必须使用Xpath吗?您的选择器可以表示为CSS,它可能没有相同的转义问题。我没有尝试过这个,所以不能保证它是一个有效的CSS选择器

String id = "\\name\\params\\etc";
driver.findElement(By.css("a[id='"+id+"']"));
就个人而言,我会使用字符串格式来构造字符串,而不是串联,但这是我们个人的选择

您也可以尝试此选择器,但认为它可能会失败,因为“\”不是有效的HTML id

String id = "\\name\\params\\etc"
driver.findElement(By.css("a#"+id));

在XPath中使用反斜杠不需要做任何特殊的事情。反斜杠在XPath中没有特殊意义,因此,没有办法逃避它们(也没有必要)

你所说的令人困惑。您说ID类似于“name\params\etc”(开头没有斜杠),但是您有
“\\name\\params\\etc”
(开头有斜杠)。是哪一个

你试过这个吗:

String id = "name\\params\\etc"
driver.findElement(By.xpath("//a[@id='" + id + "']"));

为什么元素有这样一个id:
name\params\etc
?这太奇怪了。你有这个网页的控制权,也许可以改变它吗?不,我只需要用selenium测试它,我不能改变它。好的,它是一个无效的html id属性,所以它应该被修复。将此链接转发给生成代码的开发人员:+1。元素在内部框架中,我正在检查主体中的元素。顺便说一句,谢谢你的帮助