我无法找到作为按钮的元素。
第一个按钮
<div class="col-md-12 col-sm-12 col-xs-6">
<input type="hidden" value="113" name="vendor_id"/>
<input id="vendor_submit" class="btn btn-primary mb10 SaveBtn" type="submit" value="Save & Close" name="submit"/>
我已经用这个命令定位到了
driver.findElement(By.xpath(".//*[@id='vendor_submit']") ).click();
第二个按钮
<div class="col-md-12 col-sm-12 col-xs-6">
<input type="hidden" value="113" name="vendor_id"/>
<input type="hidden" value="" name="vendor_hr_account_id"/>
<input id="vendor_submit" class="btn btn-primary mb10 SaveBtn" type="submit" value="Save" name="submit"/>
问题
现在,由于它们都在同一页面上,由于重复因素,我无法找到第二个按钮。唯一的区别是类型。 第一个有值=“保存并关闭” 第二个有值=“保存”
请帮我找到第二个按钮。
最佳答案
如果有两个具有相同 id 的元素,我建议您尝试使用 cssSelector
及其属性 value
,这对于两个元素都是唯一的并且比 xpath
如下:-
driver.findElement(By.cssSelector("input#vendor_submit[value = 'Save']")).click();
Edited1 :- 如果您在点击时遇到元素不可见异常,您应该在点击之前使用 WebDriverWait
等待,直到元素可见且可点击下面:-
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement submit = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#vendor_submit[value = 'Save']")));
submit.click();
Edited2 :- 如果不幸的是上面的方法不起作用,请尝试使用 JavascriptExecutor
进行点击,如下所示:-
WebElement el = driver.findElement(By.cssSelector("input#vendor_submit[value = 'Save']"));
((JavascriptExecutor)driver).executeScript("arguments[0].click()", el);
关于java - 如何处理 Selenium 中重复使用的元素(重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39137581/