如何在Selenium Framework中点击具有不同id属性值的不同元素? 链接ahref值是相同的文本。
<li>
<a id="abc_differentName_1_default_fun" href="javascript:startClient('abc_differentName_1', 'default', 'fun');">Start</a>
</li>
<li>
<a id="abc_differentName_2_default_fun" href="javascript:startClient('abc_differentName_2', 'default', 'fun');">Start</a>
</li>
<li>
<a id="xyz_differentName_xyz_default_fun" href="javascript:startClient('xyz_differentName_xyz', 'default', 'fun');">Start</a>
</li>
我不想创建每个链接的单击方法。
我的问题是我不想创建每个链接的单击方法。我想要一次点击方法取决于id名称。可以创建一个单击方法示例:void clickByIdName(String idName)?? 取决于我点击的链接,它将打开新窗口(其他页面对象)。
非常感谢提前。
答案 0 :(得分:0)
您可以使用css选择器查找id包含以下内容的所有元素:
driver.findElements(By.cssSelector("[id*=_differentName_]"))
如果你想要void clickByIdName(String idName)
void clickByIdName(String idName) {
driver.findElement(By.Id(idName)).click();
}
答案 1 :(得分:0)
如果页面上有多个类似文本的链接,您可以使用id
值来选择每个元素,如下所示:
driver.findElement(By.cssSelector("a#abc_differentName_1_default_fun")).click();
driver.findElement(By.cssSelector("a#abc_differentName_2_default_fun")).click();
driver.findElement(By.cssSelector("a#xyz_differentName_xyz_default_fun")).click();
答案 2 :(得分:0)
您不必使用这些ID属性值来定位链接元素。有一种更好的方法 - 链接文本定位器。您可以找到包含Start
链接文本的所有链接,并通过索引选择您需要的链接:
List<WebElement> links = driver.findElements(By.linkText("Start"));
links.get(0).click();
答案 3 :(得分:0)
不确定这里的确切问题是什么,但这些问题出在哪里:
deploy.zip
- deploy/
- appspec.yml
- app.jar
- ...