Java 如何在自动使用SeleniumWebDriver的同时处理HTML源代码中动态更改的类名

Java 如何在自动使用SeleniumWebDriver的同时处理HTML源代码中动态更改的类名,java,selenium,xpath,dynamic,selenium-webdriver,Java,Selenium,Xpath,Dynamic,Selenium Webdriver,如何在自动使用SeleniumWebDriver的同时处理HTML源代码中动态更改的“类名”或“ID” 示例应用程序:GMAIL如果要定位WordPress元素,可以使用By.name()定位此元素,如下所示:- driver.findElement(By.name("WordPress")); 用于定位元素的Selenium机制(org.openqa.Selenium.By)提供了定位元素的其他方法 示例:名称、partialLinkText、css选择器、xpath选择器、标记名、lin

如何在自动使用SeleniumWebDriver的同时处理HTML源代码中动态更改的“类名”或“ID”


示例应用程序:GMAIL

如果要定位
WordPress
元素,可以使用
By.name()
定位此元素,如下所示:-

driver.findElement(By.name("WordPress"));

用于定位元素的Selenium机制(
org.openqa.Selenium.By
)提供了定位元素的其他方法

示例:名称、partialLinkText、css选择器、xpath选择器、标记名、linkText


这包含一些易于理解的示例。

如果您知道单元格索引,那么使用XPath或cssSelector将解决此问题。在上面的屏幕截图中,很明显文本“Wordpress”位于每个表行的第5个单元格中,因此您可以使用下面的XPath来获取特定的单元格

List<WebElement> cellValue = driver.findElements(By.xpath(".//table/descendant::tr/following-sibling::td[5]"));
List cellValue=driver.findElements(By.xpath(“.//table/genderant::tr/following sibling::td[5]”);

到目前为止您尝试了什么??需要在这里共享HTML代码而不是截图..更具体地说明问题所在,您需要选择的具体内容。您可以使用您知道的或未更改的部分/属性。出于自动化目的,这将是一个很好的开始,看看您是否可以找到任何可以使用的api。此外,请确保您确实可以使用gmail进行自动化,并且您没有任何限制,例如,如果您做的太多,您可能会被阻止但是我猜名称也会根据表单元格的内容而改变。