簡體   English   中英

如何選擇腳本Selenium Webdriver生成的元素

[英]how select element generated by script selenium webdriver

我需要從UI列表中選擇元素APPLICATION 該元素的html代碼(在html中,我有10個這樣的元素)是:

<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"/>

我從未使用過此類腳本,如何使用Selenium Webdriver找到此類元素?

我努力了

driver.findElement(By.xpath(".//*[@id='yui-gen0']/div[6]/table/tbody/tr[12]/td[1]")).click();

請顯示與您的XPath匹配的HTML代碼( yui-gen0等在哪里?)

根據您提供的信息,您可能需要避免的一些問題:

  • 嘗試避免使用div [6],tr [12],使用有意義的內容而不是索引
  • 自動生成的yui-gen0
  • 保持HTML ID唯一,例如id="ItemM" 如果它們是唯一的,則直接使用它們

我建議嘗試以下方法(為了避免使用div [6],tr [12],我們需要顯示更多的HTML):

// 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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM