通过xpath Selenium java选择动态生成的ID的Web元素

我需要在下拉窗口中选择一个元素。 每当我打开我正在测试的网站的下拉窗口时,网站会随机为该下拉窗口生成一个ID。 下拉窗口的先前实例是可见的(使用Firebug)但不可选。 有一个静态路径,但只有在我使用ChromeDriver测试它时才有效,而不是在我使用FirefoxDriver时。 通过类名定位动态生成的元素(下拉窗口的每个实例具有相同的类)在我第一次尝试时起作用,但每次使用ChromeDriver和FirefoxDriver后我都会收到错误。 我认为它可能试图找到第一个实例,但不是可选择的实例。

这是我的动态代码:

driver.findElement(By.xpath("//div[@class='really long name for drop down menu']/ul/li[2]")).click(); 

这是我的静态代码:

 driver.findElement(By.xpath("//option[normalize-space(.)='Text']")).click(); 

这是动态HTML:

   

这是静态HTML:

 
Select a Thing: Text

试试这种方法:

获取所有元素。

 java.util.List elements = driver.findElements(By.xpath("//div[@class='really long name for drop down menu']/ul/li[2]")); elements[elements.count - 1].click(); 

那应该单击该特定类的最后一个元素。