【问题标题】:How we click the button having same class name and same name [duplicate]我们如何单击具有相同类名和相同名称的按钮[重复]
【发布时间】:2016-02-09 09:59:33
【问题描述】:

除了使用 xpath 方法之外,我们如何单击具有相同类名和相同名称的不同元素的按钮。

input class="btnstyle greenbtn paddinglr20" type="submit" value="Upload " name="submit_upload

我尝试了第二个按钮,但没有工作,

WebElement butttonToClick1 = driver.findElement(By.name("submit_upload"));
((JavascriptExecutor)driver).executeScript("arguments[1].click();",butttonToClick1 );

【问题讨论】:

  • 如果没有 html,我们将无法为您提供帮助
  • 其他按钮的类型和值是否也相同?
  • 这个问题和你昨天问的the one有什么不同?

标签: java html css selenium xpath


【解决方案1】:

Selenium WebDriver API 支持不同的识别可能性 元素:按 ID、按类别、按名称、按 CSS 选择器、按 XPath、按标签 姓名。您还定义了自定义选择器以便与 元素。

为元素、名称和类分配唯一 ID 始终是一种很好的做法,以便更适用于自动 UI 测试。如果这不可能,您将需要使用高级或 XPath 选择器与这些元素进行交互。由于性能和简单性的原因,最受欢迎的选择器是 CSS 选择器。

driver.findElement(By.id("element id"))
driver.findElement(By.className("element class"))
driver.findElement(By.name("element name"))
driver.findElement(By.tagName("element html tag name"))
driver.findElement(By.cssSelector("css selector"))
driver.findElement(By.link("link text"))
driver.findElement(By.xpath("xpath expression"))

如果存在唯一性问题,您也可以采用DOM 结构并生成xpath。如何优化和改进用于定位的元素取决于您。如果您发现以上任何一种适合您的情况,那么您可以使用它。

您可以从here找到xpath的更多功能。

【讨论】:

    【解决方案2】:

    @Senthil 您可以通过 xpath 访问,使用 xpath 您可以访问第二个元素。 它总是单击第一个,因为 findElement 将返回找到的第一个与您的条件匹配的。您可以使用 findElements 返回所有匹配元素的列表,然后访问找到的第二个元素。您还可以使用 xpath,例如“(//img[@id='email'])[2]”。

    您可能想要做的一件事是调查您是否可以创建一个 xpath 来考虑它应该与之关联的下拉菜单,这样您可以确保您单击的图像始终是该特定下拉菜单的图像.难度取决于您的应用程序。

    【讨论】:

      【解决方案3】:

      你可以像下面这样使用 xpath:-

      //input[@class='btnstyle greenbtn paddinglr20'][2]
      

      您可以使用如下列表:-

         int i=0;
         List<WebElement> allOptions = driver.findElements("Your Locator");
          for ( WebElement we: allOptions) { 
             i++;
             if(i==1)
             {
                we.click();
              }
          }
      

      希望对你有帮助:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-04
        • 1970-01-01
        • 2016-01-04
        • 1970-01-01
        • 2015-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多