我正在使用Selenium WebDriver,并希望根据Excel文件中名为MovieType
的列的值来勾选特定的HTML复选框。如果列包含Yes
,则应勾选该复选框,如果列包含No
,则应勾选此复选框。
HTML代码如下所示:
<input type="checkbox" onclick="trigger functionA();" tabindex="4" value="vnow" name="movie_Type"/>
如果我的Excel文件包含Yes
/ No
而不是vnow
,如何设置复选框的值? HTML是由另一位开发人员编写的,所以我不允许修改它。
这是我的Selenium的Java代码:
public static WebElement chkbx_selectMovieType(WebDriver driver, String value) throws Exception{
try{
List<WebElement> chkbxMovieType = driver.findElements(By.name("movie_Type"));
for(WebElement chkbx : chkbxMovieType){
if(chkbx.getAttribute("value").equalsIgnoreCase(value))
chkbx.click();
}
}catch (Exception e){
throw(e);
}
return element;
}
欢迎任何建议。感谢。
答案 0 :(得分:1)
要知道复选框元素的状态,请使用.isSelected()
方法。这将返回一个布尔值,这可能是您是否访问Excel文档的条件。
答案 1 :(得分:0)
似乎解决方案是使用checked
属性而不是value
属性,如here所述。
复选框:复选框。您必须使用value属性来定义此项目提交的值。 使用checked属性指示是否已选中此项。您还可以使用indeterminate属性指示该复选框处于不确定状态(在大多数平台上,这会在复选框上绘制一条水平线)
例如,以下Javascript在页面中添加了一个新复选框,并将已检查的内容记录到浏览器控制台:
"use strict";
var x = document.body.appendChild(document.createElement("input"));
x.setAttribute("type", "checkbox");
console.log(x.checked);
可以找到更多信息here。
因此,您似乎只需要在Java代码中更改此行:
if(chkbx.getAttribute("value").equalsIgnoreCase(value))
编辑:有关使用Selenium Java API获取复选框选中状态的详细信息,请参阅this answer。