我想检查一个单选按钮是否被选中,例如使用它的id属性。
需要检查的元素:
<input id="Evidence_of_Obstruction" class="" type="Radio" checked="" onclick="changeSaveStatus(this, "72");" value="0" name="Patency">
我想检查一个单选按钮是否被选中,例如使用它的id属性。
需要检查的元素:
<input id="Evidence_of_Obstruction" class="" type="Radio" checked="" onclick="changeSaveStatus(this, "72");" value="0" name="Patency">
命令:assertValue 目标:name='Patency' 值:on
或者类似的命令。您可以通过右键单击单选按钮并选择其中一个命令在Selenium IDE中使用建议的命令。
IWebElement element = _driver.FindElement(By.Id("Evidence_of_Obstruction"));
if(element.Selected)
; //then it is selected
else
; //then it is NOT selected
或者,正如t3hn00b所暗示的那样,您可以检查另一个属性,例如Value或Checked。可以这样做:
IWebElement element = _driver.FindElement(By.Id("Evidence_of_Obstruction"));
string result = element.GetAttribute("checked"); // or replace checked with value
//then check the strings contence.
这只是:
<tr>
<td>verifyChecked</td>
<td>Evidence_of_Obstruction</td>
<td></td>
</tr>
driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);
if( exists = driver.findElements( By.id("your id") ).size() != 0)
{
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}
if | !selenium.isChecked("Patency")
waitForElementPresent | name=Patency
click | name=Patency
waitForValue | name=Patency | on
endIf
上面的代码将检查复选框是否被选中。如果没有被选中,它会勾选该复选框并验证操作是否按预期进行。以上方法的唯一缺点是我还没有找到除了使用NAME或ID之外的其他方式来处理复选框。如果你使用了复选框的名称,这个方法应该可以工作,而在你的情况下,复选框的名称是 我尝试过使用XPATH或CSS来实现这个功能,但没有成功,这两种方法可以在你勾选/取消勾选复选框时帮助判断状态是否发生变化[xpath]。
如果你的复选框在网页上没有任何代码变化,或者由于某种原因你不能使用ID或NAME,那么你可以像这样做:
storeValue | xpath=//input[@id="Evidence_of_Obstruction"][@name="Patency"] | isBoxChecked
if | storedVars['isBoxChecked']=='on'
goto | NEXT_TASK
else
waitForElementPresent | xpath=//input[@id="Evidence_of_Obstruction"][@name="Patency"]
click | xpath=//input[@id="Evidence_of_Obstruction"][@name="Patency"]
waitForValue | xpath=//input[@id="Evidence_of_Obstruction"][@name="Patency"] | on
endIf
label | NEXT_TASK
这段代码利用了Selenium IDE将复选框识别为未选中(off)或选中(on)的特性。您可以存储复选框的状态,并根据其当前状态确定是否需要对复选框进行操作。希望这能帮助到您或其他遇到此问题的人。