<button class="add-school btnEditDashboard btn btn-primary pull-right" ng-click="CreateNewSchool()" name="AddSchool" type="submit">Add School</button>
也试过xpath。 (\\html/body/div[2]/div/div[2]/div/div/div[1]/div/div[2]/button
)
Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"tag name","selector":"AddSchool"}
答案 0 :(得分:1)
$(function () {
$("#choose-material").change(function() {
var val = $(this).val();
if(val.indexOf("C-D")>=0) {
$("#choose-size").show();
}
});
});
是AddSchool
属性,而不是name
(在您的情况下为tag name
)。尝试
button
答案 1 :(得分:1)
要找到元素而不是使用绝对xpath ,最好使用 relative xpath 。现在,根据 HTML ,你共享元素是一个Angular元素,所以你必须诱导 WebDriverWait 让元素可点击如下:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='add-school btnEditDashboard btn btn-primary pull-right' and @name='AddSchool']"))).click();
答案 2 :(得分:1)
尝试使用此代码:
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[text()='Add School' and @name='AddSchool' and @ng-click='CreateNewSchool()']"))).click();
如果它位于 iframe 中,请将驱动程序的焦点切换到相应的 iframe ,然后尝试与之互动。
答案 3 :(得分:1)
由于不共享HTML,可能是两件事
Iframe:您需要将驱动程序焦点更改为元素所在的iframe。 https://www.guru99.com/handling-iframes-selenium.html
Selenium在元素可见之前执行。在单击之前使用显式等待等待元素可交互。通过http://www.seleniumeasy.com/selenium-tutorials/webdriver-wait-examples
答案 4 :(得分:0)
试试这个xpath:
//button[@ng-click='CreateNewSchool()']