Java 如何在findElement中使用表达式(By.xpath(";//span[contains(text(),';string';)]))

Java 如何在findElement中使用表达式(By.xpath(";//span[contains(text(),';string';)])),java,selenium,Java,Selenium,预期结果: findElement(By.xpath("//span[contains(text(),'string')]")); 哪个字符串是表达式默认情况下,Selenium使用浏览器附带的“本机”版本的xpath,xpath 1不支持正则表达式。实际上Selenium WebDriver使用的库只支持正则表达式 因此,regex表达式在这里是非法的,您只能使用Selenium WebDriver的特性和功能 如果参数值不支持正则表达式,我可以在这里使用它吗 是的,您可以使用参数值,但此参

预期结果:

findElement(By.xpath("//span[contains(text(),'string')]"));

哪个字符串是表达式默认情况下,Selenium使用浏览器附带的“本机”版本的
xpath
,xpath 1不支持正则表达式。

实际上
Selenium WebDriver
使用的库只支持正则表达式

因此,regex表达式在这里是非法的,您只能使用
Selenium WebDriver
的特性和功能


如果参数值不支持正则表达式,我可以在这里使用它吗


是的,您可以使用参数值,但此参数值将仅作为字符串而不是正则表达式处理,如下所示:-

findElement(By.xpath("//span[contains(text(),**String**)]"));

你是说正则表达式吗?如果它不支持正则表达式,我可以在这里使用参数值吗?是的,你可以在这里使用参数值作为
String param=“something”;findElement(By.xpath(“//span[contains(text(),“+param+”)”)
是的,我试过你说的,但实际结果不是我期望的结果。字符串s=测试;WebElement menuButton=r.browser.findElement(By.xpath(//span[contains(text(),“+s+”))))。实际结果为//span[text(),test],无法定位元素,预期结果为//span[text(),'text'],您能提供更多支持吗?感谢在添加单引号后,它可以正常工作。r、 browser.findElement(By.xpath(“//span[contains(text(),”)“+s+”‌​')]"))我可以在这里使用参数值吗?如果可以,如何使用?非常感谢@Saurabh Gaur
String param = "something";

findElement(By.xpath("//span[contains(text(),'" + param +"')]"))