2017-02-06 8 views
2

を使用して、それをクリックすることができ、チェックボックスがハイライトされているが、そのは をクリックされていないと私は例外を得ることはありません。チェックボックスが選択されているが、できないのチェックボックスをクリックするとセレン

<input name="include_notice" onclick="javascript:TogglePublishDates();" type="checkbox"> 

Picture of highlighted checkbox

私は名前を持つこのチェックボックスを識別し、sendkeysReturnsendKeysEnterを使用してみました。

注:このテストケースはかなり長時間実行されていました.Selenium WebドライバまたはFirefoxでは変更されていません。

+0

を2回クリックしてみてください。 – Liniel

+0

また、この特定の要素を一意に識別してください。 – Mikhail

答えて

1

あなたは以下に示すように、Javaスクリプトを使用してクリックしてくださいすることができます

JavascriptExecutor e = (JavascriptExecutor)wd; 
e.executeScript("arguments[0].click();", driver.findElement(By.name("include_notice"))); 

それでも一貫性のない動作を観察する場合は、以下に示すように、再試行メカニズムを実装することもできます。

//1) Finding the check box 
    WebElement checkBox = driver.findElement(By.name("include_notice")); 
    //2) Checking whether check box is already checked 
    if (!checkBox.isSelected()) { 
     JavascriptExecutor e = (JavascriptExecutor)wd; 
     e.executeScript("arguments[0].click();", checkBox); 
     //3) Checking whether first attempt to check the check box worked 
     if (!checkBox.isSelected()) { 
      //4) Retrying 
      checkBox.click(); 
     } 
    } 

ご質問がありましたらお知らせください。

1

あなたはコード以下これらを試すことができます。javaスクリプト実行プログラムを使用して

driver.findElement(By.name("include_notice")).click(); //find checkbox element and click on it. 

クリックしてチェックボックスをオンにします。

WebElement checkbox = driver.findElement(By.name("include_notice")); 
((JavascriptExecutor) driver).executeScript("arguments[0].click();", checkbox); 

チェックボックスが選択されている場合は、このコードを使用します。

WebElement checkbox = driver.findElement(By.name("include_notice")); 
if (!checkBox.isSelected())  //checkbox is not selected then only it will select the checkbox. 
{ 
    checkBox.click(); 
    System.out.println(checkbox.isSelected()); 
} 
+0

私のコードの説明があなたを助けましたか?そうであれば、この回答に「Accepted」と記入してください –

関連する問題