我正在使用selenium来自动化我的应用程序。
屏幕上会显示一些系统生成的报告。
它有href链接的请求ID。如果我单击请求ID,我可以查看故障单的详细信息。
我不确定哪个请求ID用作LINKTEXT,因为它是系统生成的。在这种情况下,任何人都可以帮助我点击列表中的第一条记录或任何记录,以便我可以继续。
我可以获取属性值并在linkText中使用它。但我不确定除此之外的任何简单方法。
由于
答案 0 :(得分:1)
我假设您有一个类似下面的场景,您需要在下面的案例中选择第一个元素70
示例Html
<html>
<body>
<A id=ViewGrid_lnk0 onclick="return OpenWindow('requst.aspx', 'ViewGrid', 1);" href="xx.xxx.xxx.xxx/Request.aspx#">70</A>
<A id=ViewGrid_lnk0 onclick="return OpenWindow('requst.aspx', 'ViewGrid', 1);" href="xx.xxx.xxx.xxx/Request.aspx#">30</A>
<A id=ViewGrid_lnk0 onclick="return OpenWindow('requst.aspx', 'ViewGrid', 1);" href="xx.xxx.xxx.xxx/Request.aspx#">40</A>
<A id=ViewGrid_lnk0 onclick="return OpenWindow('requst.aspx', 'ViewGrid', 1);" href="xx.xxx.xxx.xxx/Request.aspx#">50</A>
<A id=ViewGrid_lnk0 onclick="return OpenWindow('requst.aspx', 'ViewGrid', 1);" href="xx.xxx.xxx.xxx/Request.aspx#">60</A>
</body>
</html>
<强>的xpath 强>
//a[contains(@href,'Request.aspx#') and @id='ViewGrid_lnk0']
上面的xpath将列出所有标识为ViewGrid_lnk0
的元素和包含字符序列的href属性(Request.aspx#
)
Java代码
//store the Webelements in a list
List<WebElement> divs = driver.findElements(By.xpath("//a[contains(@href,'Request.aspx#') and @id='ViewGrid_lnk0']"));
//click the first element in list
divs.get(0).click();//in the above case it will select 70
您还可以通过更改get(index)中的索引来单击任何元素,或者使用简单的for循环遍历所有元素
希望这会对你有所帮助。如果您有任何疑问或者我误解了您的问题,请回复