我有this page的以下功能文件:
@checkbox
Feature: Check the checkbox
Webdriver should be able to check the checkbox lists
Scenario: Check the checkbox
Given I am in checkbox task page
Then I can check the hobbies from the checkbox
Scenario Outline: Title of your scenario outline
Given I am in "http://suvian.in/selenium/1.6checkbox.html"
Then I can check the <id> from the checkbox
Examples:
| id |
| 1 |
| 2 |
| 3 |
| 4 |
问题是,我在我的场景大纲中涉及了id
这样的详细信息。我想将其更改为
Examples:
| hobby |
| dancing |
| sporting |
| singing |
| PC Gaming |
但我不知道,如何解决这个问题:
<input style="width:20px;height:20px;" type="checkbox" id="2">
在我的selenium webdriver中?
答案 0 :(得分:1)
您可以使用xpath
preceding-sibling
//label[contains(.,'Singing')]/preceding-sibling::input
这将找到标签Singing
,并从那里找到上一个兄弟<input>
标签。
答案 1 :(得分:0)
您可以尝试查找class =&#39; intro-message&#39;
下的所有标签List<WebElement> labels = driver.findElements(By.xPath("//div[@class='intro-message']/label"));
然后尝试循环列表中的每个元素以读取其文本,如果匹配您在黄瓜示例中传递的值,则可以获取&#39;的属性值。对于那个元素
public WebElement getCheckboxLocator(string checkboxName){
int id = 0;
foreach(WebElement ele in labels){
if(ele.getAttribute("textContent").equalsIgnoreCase(checkboxName)){
id = Integer.parseInt(ele.getAttribute("for"));
}
}
return driver.findElement(By.xPath(string.format("//div[@class='intro-message']/input[id='%s']", id)));
}