Java 如何使用selenium单击由6位数字生成的按钮?

Java 如何使用selenium单击由6位数字生成的按钮?,java,facebook,selenium,Java,Facebook,Selenium,如何单击id中的图案名称为[u_3]//的按钮?示例:u123456_3 selenium是否支持任何具有该能力的成员? 您可以在登录facebook时看到它。如果id是自动生成的,您不应该将其用于selenium,因为您不能假设它总是相同的(可能下次他们重新启动服务器时,或者如果您从负载平衡器获得不同的服务器,则生成的id是不同的) 尝试使用元素的另一个属性,如class或name,使用XPath通常可以定义一种方法来标识元素,而无需使用id 在中,您可以检查它是如何工作的。如果id是自动生成

如何单击id中的图案名称为[u_3]//的按钮?示例:u123456_3 selenium是否支持任何具有该能力的成员?
您可以在登录facebook时看到它。

如果id是自动生成的,您不应该将其用于selenium,因为您不能假设它总是相同的(可能下次他们重新启动服务器时,或者如果您从负载平衡器获得不同的服务器,则生成的id是不同的)

尝试使用元素的另一个属性,如class或name,使用XPath通常可以定义一种方法来标识元素,而无需使用id


在中,您可以检查它是如何工作的。

如果id是自动生成的,您不应该将其用于selenium,因为您不能假设它总是相同的(可能下次他们重新启动服务器时,或者如果您从负载平衡器获得不同的服务器,则生成的id是不同的)

尝试使用元素的另一个属性,如class或name,使用XPath通常可以定义一种方法来标识元素,而无需使用id


在中,您可以检查它是如何工作的。

对于正则表达式,我将使用Javascript注入和getElementByTagName来获取按钮。从这里开始,根据正则表达式迭代匹配ID的代码,并将匹配的ID返回给selenium供您使用


但是,如果您可以不使用正则表达式,CSS支持以属性开始和结束,像CSS=button[id^=“u”][id$=“_3”]这样的定位器可能会工作。

对于正则表达式,我将使用Javascript注入和getElementByTagName来获取按钮。从这里开始,根据正则表达式迭代匹配ID的代码,并将匹配的ID返回给selenium供您使用


但是,如果您可以不使用正则表达式,CSS支持从属性开始并以属性结束,像CSS=button[id^=“u”][id$=“\u 3”]这样的定位器可能会起作用。

具有非静态标识符名称对UI自动化(以及潜在的可访问性工具)来说确实不好。听起来像是一个正在形成的可访问性缺陷……具有非静态标识符名称对UI自动化(以及潜在的可访问性工具)来说确实是一个坏消息。听起来像是一个正在形成的可访问性缺陷。。。 [u<6digits>_3] //? u123456_3