Java 如何单击具有相同类名和相同名称的按钮

Java 如何单击具有相同类名和相同名称的按钮,java,html,css,selenium,xpath,Java,Html,Css,Selenium,Xpath,除了使用xpath方法外,我们如何单击具有相同类名和不同元素的相同名称的按钮 input class="btnstyle greenbtn paddinglr20" type="submit" value="Upload " name="submit_upload 我试了第二个按钮但没用 WebElement butttonToClick1 = driver.findElement(By.name("submit_upload")); ((JavascriptExecutor)driver).

除了使用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 );
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
。这取决于您如何为定位目的优化和改进元素。如果您发现以上任何一项适合您的情况,那么您可以使用它


您可以从中找到更多的
xpath函数。

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


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

您可以使用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();
        }
    }
inti=0;
List allOptions=driver.findElements(“您的定位器”);
对于(WebElement-we:allOptions){
i++;
如果(i==1)
{
we.click();
}
}

希望它能帮助您:)

如果没有htmlis,我们无法帮助您。另一个按钮的类型和值也是相同的?这个问题与您昨天问的有什么不同?