This question already has an answer here:
How can I click the second submit button with Selenium webdriver?
                                
                                    (1个答案)
                                
                        
                                3年前关闭。
            
                    
除了使用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,按CLASS,按NAME,按CSS选择器,按XPath,按TAG
  名称。此外,您还定义了自定义选择器以便与之交互
  要素。


为元素,名称和类分配唯一的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的更多功能。

10-04 22:59
查看更多