【问题标题】:How to click on a button inside a popup as per the html through SeleniumWebdriver and Java如何通过 Selenium Webdriver 和 Java 根据 html 单击弹出窗口内的按钮
【发布时间】:2018-08-20 13:39:52
【问题描述】:

我尝试点击像 imagen 这样的按钮。

无法使用类或 xpath

这是按钮

这是从此按钮进行的​​检查。

这是试图点击按钮的代码:

driver.findElement(By.xpath("/html/body/div[10]/button")).click();

这是之前的 xpath:

driver.findElement(By.xpath("/html/body/div[10]"));

谁能帮帮我!!!

【问题讨论】:

    标签: java selenium selenium-webdriver xpath webdriverwait


    【解决方案1】:

    页面中的每个简单更改都会导致您的代码停止运行,请尝试始终使用 classid 并导航到它的兄弟/父节点。

    你可以通过两种方式做到这一点

    1.通过使用CssSelector(在DevTools中右键单击元素->复制->复制选择器)

    driver.FindElement(By.CssSelector("CopiedText")).Click()
    

    2.通过使用 XPath 并通过其父级访问它(您的案例示例)

    driver.FindElement(By.xpath("//div[@class='advertising-layer']/button")).Click()
    

    【讨论】:

      【解决方案2】:

      我在访问对话框中的按钮时遇到了类似的问题。我尝试使用 XPath,id,它不起作用,但它适用于 CSS 选择器。 通过使用 CSS 选择器,我使 selenium webdriver 单击按钮,从对话框的下拉列表中选择一个值,在文本框中键入一个值。 我不确定为什么它完全适用于 CSS 选择器而不适用于 XPath。如果有人对此有描述,我将不胜感激。

      如果您想获取特定元素的 CSS 选择器,请按照以下步骤操作

      • 在 Firefox 中打开应用程序
      • 打开 Inspect 元素,并在检查器中(您可以看到 HTML 代码的地方)
      • 使用此按钮

      • 选择页面中的元素以查看检查器的特定代码
      • 右击代码高亮部分,将鼠标悬停在副本上,会找到 CSS 选择器

      让我知道这是否适合您。

      【讨论】:

        【解决方案3】:

        根据您共享的 HTML,在您必须诱导 WebDriverWait 的所需元素上调用 click(),您可以使用以下解决方案:

        new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("/div[@class='advertising-mask']//button"))).click();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-01-20
          • 1970-01-01
          • 2020-06-29
          • 1970-01-01
          • 2018-12-17
          • 1970-01-01
          • 2019-01-31
          相关资源
          最近更新 更多