Java 如何选择脚本SeleniumWebDriver生成的元素

Java 如何选择脚本SeleniumWebDriver生成的元素,java,selenium,webdriver,selenium-webdriver,Java,Selenium,Webdriver,Selenium Webdriver,我需要从UI上的列表中选择元素应用程序。该元素的html代码(在html中,我有10个这样的元素)是: 请显示与您的XPath匹配的HTML代码(其中是yui-gen0等等?) 从您提供的信息来看,您可能希望避免的问题很少: 尽量避免使用div[6],tr[12],使用有意义的东西而不是索引 如果yui-gen0是自动生成的,请不要使用yui-gen0 保持HTML id的唯一性,如id=“ItemM”。如果它们是唯一的,请直接使用它们 我建议您尝试以下方法(我们需要您显示更多HTML,以避

我需要从UI上的列表中选择元素应用程序。该元素的html代码(在html中,我有10个这样的元素)是:


请显示与您的XPath匹配的HTML代码(其中是
yui-gen0
等等?)

从您提供的信息来看,您可能希望避免的问题很少:

  • 尽量避免使用div[6],tr[12],使用有意义的东西而不是索引
  • 如果yui-gen0是自动生成的,请不要使用
    yui-gen0
  • 保持HTML id的唯一性,如
    id=“ItemM”
    。如果它们是唯一的,请直接使用它们
我建议您尝试以下方法(我们需要您显示更多HTML,以避免使用div[6],tr[12]):


您的问题不清楚。请用清晰的代码和示例发布您的问题。@khris:您对此有任何反馈吗?对你有用吗?
<tr id="4676856" class="menuItem" orientation="vertical" collectionid="tr4" radioid="12">
<td id="ItemL" class="left" data-click="[["runScript",["switchApplication('myapp')"]]]" data-ctl="nav">
<div class="menuRB"/>
</td>
<td id="ItemM" class="middleBack" tabindex="0" data-click="[["runScript",["switchApplication('myapp')"]]]"     data-ctl="nav">**APPLICATION**</td>
<td id="ItemR" class="rightEdge" data-click="[["runScript",["switchApplication('myapp')"]]]" data-ctl="nav"/>
driver.findElement(By.xpath(".//*[@id='yui-gen0']/div[6]/table/tbody/tr[12]/td[1]")).click();
// find by text '**APPLICATION**'
driver.findElement(By.xpath(".//*[@id='yui-gen0']/div[6]/table/tbody/tr[12]/td[text()='**APPLICATION**']")).click();

// find by class name (if it's the only one)
driver.findElement(By.xpath(".//*[@id='yui-gen0']/div[6]/table/tbody/tr[12]/td[@class='middleBack']")).click();

// find by class name (if there are others)
driver.findElement(By.xpath(".//*[@id='yui-gen0']/div[6]/table/tbody/tr[12]/td[contains(@class, 'middleBack')]")).click();

// find by id, which should be unique, if it's not, your HTML is bad
driver.findElement(By.xpath(".//*[@id='ItemM']")).click();