如何选择图像并使用Selenium Web驱动程序单击它?如果是这样说的话
<style type="text/css"> <ul id="nav"> <li> <li> <li> <li> <li> <a href="dashboard.action">My Dashboard</a> </li> </ul>
我会用吗?
driver.findElement(By.linkText("My Dashboard")).click();
或者是其他东西?
如果要单击示例中的链接,可以使用您编写的选择器,不同类型的css选择器(例如,By.cssSelector("#nav a")
(查找“nav”列表中的链接)或By.cssSelector("a[href='dashboard.action']")
(查找具体的链接) href))或使用xPath选择器。
重要的是要有一个唯一的标识符来定位你的元素和一个将在100%的时间内触发的标识符。
例如,如果您希望更改链接文本,则不要查找该特定链接文本,因为您无法保证它将在100%的时间内正常工作。
同样,如果有30个不同的元素具有相同的id标记,请不要使用它。
如果事情变得非常复杂......也就是说,如果你在一个包含大量未知变量的大页面中,请通过XPATH查找。
最后,它实际上取决于您输入的网站的复杂程度,以及您需要完成的目标。
有关更多信息,请转到Selenium javadocs并单击侧栏上的BY以获取不同方法的列表以及如何使用它们。
如果需要单击带有图像的链接,最好使用显式等待来定位元素。
示例:
new WebDriverWait(driver,timeout).until(ExpectedConditions.presenceOfElementLocated(locator));