1

複数の行/列を持つテーブルを含むページがあります。列の 1 つに、「OK」というリンクがあります。そのリンクをクリックする必要があります。

これが私のコードですが、非常に一貫性がありません。いくつかの行で「OK」をクリックしますが、他のいくつかの行では同じをクリックできません。ここで何か不足していますか?

更新:colElement.findElement(By.linkText("OK")).click()代わりに 使用して動作させましたcolElement.click()

List<String> tableValues = new ArrayList<String>();
WebElement element=driver.findElement(By.className("table"));
List<WebElement> rowCollection=element.findElements(By.xpath("//*[@className='table']/tbody/tr"));
for(WebElement rowElement:rowCollection)
    {
    List<WebElement> colCollection=rowElement.findElements(By.tagName("td"));
    for(WebElement colElement:colCollection)
        {
        if(colElement.getText().equals("OK"))
            {
            colElement.click();   
            }
        }
    }
4

3 に答える 3

0

あなたのコードと非常によく似たコードを使用したいくつかのテストがあり、正常に動作します。これらの問題に関する私の経験から、2 つのことを追加します。

1) 次のコード行を変更します。

if(colElement.getText().equals("OK"))

if(colElement.getText().trim().equals("OK"))

2) クリックをラップしますWait(クリックをしばらく再試行させます)。

それが役に立てば幸い。

于 2013-08-05T09:30:43.873 に答える