簡體   English   中英

如何使用 selenium Webdriver 單擊單選按鈕?

[英]How to click on the radiobutton using selenium Webdriver?

在下面的代碼中,無法使用 xpath 和 id 來單擊或獲取單選按鈕的文本。

請幫我執行上述操作。

<section class="col-md-12 mb5">
    <div class="well well-cust">
        <label class="radio-inline pl0">
            <input type="radio" name="project_task" value="A" onclick="Javascript:projtasks();" id="radio1">&nbsp;&nbsp;Projects Tasks</label>
        <label class="radio-inline">
            <input type="radio" name="project_task" value="B" onclick="nonprojtasks(); " id="radio2">&nbsp;&nbsp;Non Projects Tasks</label>
        <label class="radio-inline">
            <input type="radio" name="project_task" value="C" checked="checked" onclick="assignedTasks();" id="radio3">&nbsp;&nbsp;Assigned Tasks</label>
        <label class="radio-inline">
            <input type="radio" name="project_task" value="D" onclick="issueAssigned(); " id="radio4">&nbsp;&nbsp;Issues Assigned</label>
    </div>      
</section>

嘗試使用 xpath 和 id 來單擊元素。

我嘗試使用以下代碼:

//Import data for Radiobutton
String Radiobutton_val = formatter.formatCellValue(sheet.getRow(i).getCell(1));
System.out.println("Radio button 1 = "+driver.findElement(By.xpath("//*[@id=\"radio1\"]")).getText());
System.out.println("Radio button 2 = "+driver.findElement(By.xpath("//*[@id=\"radio2\"]")).getText());

if(driver.findElement(By.id("radio1")).getText().equals(Radiobutton_val)) {
    driver.findElement(By.xpath("//*[@id=\"radio1\"]")).click();
} else if(driver.findElement(By.id("radio2")).getText().equals(Radiobutton_val)){
    driver.findElement(By.xpath("//*[@id=\"radio2\"]")).click();
}

我希望它應該 getText 的單選按鈕 & 基於它應該單擊指定單選按鈕的 getText 值

我猜你的getText調用返回的不是預期的字符串? 您應該檢查父 label 的文本。 嘗試以下操作:

if(driver.findElement(By.xpath("//*[@id='radio1']//..")).getText().equals(Radiobutton_val)) {                
    driver.findElement(By.xpath("//*[@id='radio1']")).click();
} 

要在帶有從excel 表中讀取的文本單選按鈕click() ,您需要為elementToBeClickable()引入WebDriverWait ,並且可以使用以下定位器策略

  • 使用xpathcontains()

     String Radiobutton_val = formatter.formatCellValue(sheet.getRow(i).getCell(1)); // String Radiobutton_val ="Non Projects Tasks"; // String Radiobutton_val ="Assigned Tasks"; // String Radiobutton_val ="Issues Assigned"; new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(., '" + Radiobutton_val + "')]"))).click();
  • 使用xpathcontains(normalize-space())

     String Radiobutton_val = formatter.formatCellValue(sheet.getRow(i).getCell(1)); // String Radiobutton_val ="Non Projects Tasks"; // String Radiobutton_val ="Assigned Tasks"; // String Radiobutton_val ="Issues Assigned"; new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(normalize-space(), '" + Radiobutton_val + "')]"))).click();

暫無
暫無

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

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