【问题标题】:How can i click on this button with selenium我怎样才能用硒点击这个按钮
【发布时间】:2017-08-20 15:55:05
【问题描述】:

我怎样才能用 selenium 点击这个按钮?

<a class="_42ft _4jy0 rfloat _ohf _4jy4 _517h _51sy" role="button" href="" ajaxify="/nux/wizard/step/?action=skip" rel="async-post" id="u_9_8">İleri</a>

【问题讨论】:

  • 尝试使用click()方法
  • 欢迎来到 StackOverflow,这是一个了不起的资源,但您应该花一些时间和tour 该网站以及检查how to ask questions。这将教您如何最好地格式化您的问题,以使社区能够最好地帮助您。提出如此糟糕的问题,你真的只是在伤害自己。

标签: java selenium selenium-webdriver


【解决方案1】:

通过使用包含文本的xpath,您可以单击元素(以下是答案)

driver.findElement(By.xpath("//a[contains(text(),'Ileri')]")).click();

试试看,如果它适合你,请告诉我

【讨论】:

    【解决方案2】:

    我希望我早先知道如何创建自己的高级 CSS 选择器,这是教给我的页面,假设您的元素在 DOM 中可见,它将适用于所有情况。

    https://www.smashingmagazine.com/2009/08/taming-advanced-css-selectors/

    对于您给定的元素,您可以编写多种方式

    通用形式 tag[attribute='ATTRIBUTE_VALUE']

    你的例子

    a[id='u_9_8']

    a[class='_42ft _4jy0 rfloat _ohf _4jy4 _517h _51sy']

    a[rel='async-post']

    现在所有这些选择器只有在属性唯一时才有用。但是看看那篇文章,您可以使用许多技巧来使 CSS 选择器为您工作。

    【讨论】:

      【解决方案3】:

      我认为你应该可以使用 id

      driver.findElement(By.id("u_9_8")).click();

      试一试

      【讨论】:

        【解决方案4】:

        试试下面提到的任何代码。

        使用id定位器

        driver.findElement(By.id("u_9_8")).click();
        

        使用xpath定位器

        driver.findElement(By.xpath("//a[text()= 'İleri']").click();
        

        说明:-text 方法与<a>tag 一起使用。

        driver.findElement(By.xpath("//a[@role='button'][text()= 'İleri']").click();
        

        说明:- 使用role 属性和text 方法以及<a> 标签。

        【讨论】:

        • 你试过这个代码吗?我对代码的解释对你有帮助吗?
        【解决方案5】:

        点击前请添加等待条件

        通过 linkText 点击元素: webDriver.findElement(By.linkText("İleri")).click();

        元素点击 Via id : webDriver.findElement(By.id("u_9_8")).click();

        元素点击通过 cssSelector : 1.webDriver.findElement(By.cssSelector("._42ft._4jy0.rfloat._ohf._4jy4._517h._51sy")).click();

        2.webDriver.findElement(By.cssSelector("a[class='_42ft _4jy0 rfloat _ohf _4jy4 _517h _51sy']")).click();

        通过 javaScript 点击元素: ((JavascriptExecutor) 驱动程序).executeScript("arguments[0].click();", webElement);

        这里需要传递元素定位器而不是webElement。

        【讨论】:

          【解决方案6】:

          我们可以看到 ID 属性标签,因此我们可以使用 ID "u_9_8" 来点击按钮。 使用下面的代码。

          driver.findelement(By.id("u_9_8")).click();

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-10-04
            • 2022-01-10
            • 2019-06-10
            • 2021-02-02
            • 2016-10-13
            • 2022-01-24
            • 2015-02-05
            • 1970-01-01
            相关资源
            最近更新 更多