Regex webdriver中的正则表达式

Regex webdriver中的正则表达式,regex,selenium,xpath,selenium-webdriver,webdriver,Regex,Selenium,Xpath,Selenium Webdriver,Webdriver,我不熟悉Webdriver。在下面的语法中,value37500是动态的,所以请帮助我如何为相同的值执行正则表达式 driver.findElement(By.xpath(".//*[@id='37500']/td[2]")).click(); 提前感谢如果您可以使用XPath 2.0,您可以调用,但我认为通过Selenium Webdriver使用的任何浏览器都不支持这一点 在XPath 1.0(由Selenium支持)中,应该具有可用的。可以使用它来检查值是否为数字 number(valu

我不熟悉
Webdriver
。在下面的语法中,value
37500
是动态的,所以请帮助我如何为相同的值执行正则表达式

driver.findElement(By.xpath(".//*[@id='37500']/td[2]")).click();

提前感谢

如果您可以使用XPath 2.0,您可以调用,但我认为通过Selenium Webdriver使用的任何浏览器都不支持这一点

在XPath 1.0(由Selenium支持)中,应该具有可用的。可以使用它来检查值是否为数字

number(value) = number
表示转换为数字的值保持不变(因此它不是文本、布尔值或节点集)

因此,下面的XPath表达式应该允许您在每个元素中找到第二个
td
,该元素具有一个数值
id
,并解决缺少正则表达式支持的问题:

.//*[number(@id) = @id]/td[2]
要查找页面上的所有匹配元素,请使用
findElements

driver.findElements(By.xpath(".//*[number(@id) = @id]/td[2]")).click();

如果该值在此模式中动态更改

driver.findElement(By.xpath(".//*[@id='37500']/td[2]")).click();
然后使用
id
属性将不起作用。请检查根html,并尝试将其与父标记一起提供。例如:
/html/body//div/td[2]


或者,如果它有一个唯一的字段,请尝试使用不同的属性。

您能展示一些示例html片段来说明问题吗?我尝试了这种语法,但它不会移动到下一行。值添加到第一行本身。请help@user3894096这可能是因为您使用的是
findElement
,它只返回找到的第一个
WebElement
,而不是
findElements
,后者返回所有匹配
WebElement
列表。检查。如果是这种情况,请告诉我,我会相应地更新答案。不是Selenium不支持XPath 2,而是浏览器(它们都不支持):@Arran true,不管怎样,在Selenium Webdriver自动测试中还不可能使用它。谢谢Pavithra。我找到了父路径驱动程序.findelelement(By.xpath(//table[@id='vadivelan']]/tbody/tr[2]/td[2]”);这里的动态值是tr[2]/td[2],请帮助我发送整个DOM元素?如果只有/td[2]和tr[2]的值发生变化,那么xpath本身就可以像您发送的那样给出。