を使用して、<「CHK」=のラベル>タグ内にあるチェックボックスをクリックすることができません:私はデータセルTD内のチェックボックスをクリックしようとしていますが、毎回私は取得していますセレン
org.openqa.selenium.ElementNotVisibleException
例外、 問題は有効ですが表示されません。
<table id='table1'>
<thead></thead>
<tbody>
<tr>
<td>
<input id='id1' class='class' type='checkbox'>
<label for='chk1'>
:: before
</label>
</td>
</tr>
<tr>
<td>
<input id='id2' class='class' type='checkbox'>
<label for='chk2'>
:: before
</label>
</td>
</tr>
<tr>
<td>
<input id='id3' class='class' type='checkbox'>
<label for='chk3'>
:: before
</label>
</td>
</tr>
</tbody>
</table>
が、コードの作品とリターン以下:
以下は、ページのソースです。
System.out.println("isDisplayed()"+ td_lblcollection.get(0).isDisplayed()); --> False
System.out.println("isEnabled()"+td_lblcollection.get(0).isEnabled()); --> True
System.out.println("isSelected()"+td_lblcollection.get(0).isSelected()); --> False
手動でチェックボックスが見えると選択することができるが、IsDisplayedは偽であり、要素が見える例外がスローされません。
すべての方法を試してみましたが、すべてが失敗します。ロケータは良いです。
ロケータ:
@FindBy(xpath = "//*[@id='table1']/tbody/tr")
List<WebElement> tblLookupSites;
方法1:表中のループ
for (WebElement trElement : tblLookupSites) {
List<WebElement> td_collection = trElement.findElements(By.xpath("td"));
for (WebElement tdElement : td_collection) {
List<WebElement> td_lblcollection =tdElement.findElements(By.xpath("label"));
td_lblcollection.get(0).click();
}
}
方法2:表中のループ
for (WebElement trElement : tblLookupSites) {
List<WebElement> td_collection = trElement.findElements(By.xpath("td"));
for (WebElement tdElement : td_collection) {
List<WebElement> td_lblcollection =tdElement.findElements(By.xpath("input"));
td_lblcollection.get(0).click();
}
}
法3:表中のループ
for (WebElement trElement : tblLookupSites) {
List<WebElement> td_collection = trElement.findElements(By.xpath("td"));
for (WebElement tdElement : td_collection) {
List<WebElement> td_lblcollection =tdElement.findElements(By.id("id1"));
td_lblcollection.get(0).click();
}
}
このチェックボックスをクリックする方法をお勧めします。
UIはvue.jsを使用して作成されます。
私はこれを以前に試してみましたが、今もう一度試しましたが、まだ動作しませんでした。 – Leo
これを試してください、それは助けるかもしれません - 'WebElement element = driver.findElement(By.xpath(" // input [@ id = 'id1'] ")); \t \t JavascriptExecutor js =(JavascriptExecutor)driver; \t \t js.executeScript( "arguments [0] .click();"、要素); ' – NarendraR
Awesome! Javascriptが動作しました、ありがとうNarendra _/| \ _。 – Leo