验证选定的单选按钮 - Selenium IDE

3

我想检查一个单选按钮是否被选中,例如使用它的id属性。

需要检查的元素:

<input id="Evidence_of_Obstruction" class="" type="Radio" checked="" onclick="changeSaveStatus(this, "72");" value="0" name="Patency">

这是需要检查的元素:<input id="Evidence_of_Obstruction" class="" type="Radio" checked="" onclick="changeSaveStatus(this, "72");" value="0" name="Patency"> - user1398749
抱歉,伙计们,可以使用任何Selenium命令:verify、check或其他。我只需要检查它们是否被选中。谢谢! - user1398749
6个回答

1
使用Selenium IDE,我更喜欢使用元素ID,这与t3hn00b的建议非常接近:
命令:assertValue 目标:id=Evidence_of_Obstruction 值:on

1

命令:assertValue 目标:name='Patency' 值:on

或者类似的命令。您可以通过右键单击单选按钮并选择其中一个命令在Selenium IDE中使用建议的命令。


0
在WebDriver中,这将类似于:
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.

0

这只是:

<tr>
    <td>verifyChecked</td>
    <td>Evidence_of_Obstruction</td>
    <td></td>
</tr>

0
请使用以下代码:-
driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);
if(  exists = driver.findElements( By.id("your id") ).size() != 0)
{
    driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}

你可以使用代码的这一部分。

0
你可以这样做...
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)的特性。您可以存储复选框的状态,并根据其当前状态确定是否需要对复选框进行操作。希望这能帮助到您或其他遇到此问题的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接