【问题标题】:Selenium Web driver clicking imagesSelenium Web 驱动程序单击图像
【发布时间】:2016-09-29 22:58:04
【问题描述】:

如何使用 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();

还是别的什么?

【问题讨论】:

    标签: java selenium selenium-webdriver qa


    【解决方案1】:

    如果您想单击示例中的链接,可以使用您编写的选择器、不同类型的 css 选择器(例如,By.cssSelector("#nav a")(在“导航”列表中查找链接)或By.cssSelector("a[href='dashboard.action']") (查找带有特定 href 的链接))或使用 xPath 选择器。

    【讨论】:

    • 我正在尝试单击一个使用 css 并且具有 ul id = "nav" 并且具有
    • 我的仪表板的文本
    • 我会在 selenium webdriver 中输入什么代码来点击它
    【解决方案2】:

    重要的是要有一个唯一的标识符来定位你的元素和一个会在100%的时间内触发的标识符。

    例如,如果您希望链接文本在您身上发生变化,则不要寻找特定的链接文本,因为您无法保证它会 100% 起作用。

    同样,如果有 30 个不同的元素具有相同的 id 标签,也不要使用它。

    如果事情变得非常复杂......也就是说,如果您在一个包含许多未知变量的大页面中,请通过XPATH 查找。

    最终,这实际上取决于您进入的网站的复杂程度,以及您需要完成的目标。

    如需更多信息,请转至Selenium javadocs 并单击侧边栏上的 BY 以查看不同方法的列表以及如何使用它们。

    【讨论】:

      【解决方案3】:

      如果您需要单击带有图像的链接,最好使用显式等待来定位元素。

      例子:

      new WebDriverWait(driver, timeout).until(ExpectedConditions.presenceOfElementLocated(locator));

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签