[英]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"> Projects Tasks</label>
<label class="radio-inline">
<input type="radio" name="project_task" value="B" onclick="nonprojtasks(); " id="radio2"> Non Projects Tasks</label>
<label class="radio-inline">
<input type="radio" name="project_task" value="C" checked="checked" onclick="assignedTasks();" id="radio3"> Assigned Tasks</label>
<label class="radio-inline">
<input type="radio" name="project_task" value="D" onclick="issueAssigned(); " id="radio4"> 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 ,並且可以使用以下定位器策略:
使用xpath和contains()
:
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();
使用xpath和contains(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.