<table id="charitiesToAdd" style="width: 100%;">
<div id="newProject000" style="padding-left: 10px; padding-top: 10px;">
<div id="newProject1" class="row row1" style="padding-left: 10px; padding-top: 10px; clear: both;">
<div class="large-1 columns">
<div class="large-5 name columns" style="font-size: 18px;">Anand's Charity</div>
<div class="city large-5 columns" style="font-size: 16px;">Los Angeles</div>
<div>
<button id="addCharityToProjectButton" class="large-1 columns" onclick="addCharity("newProject1")" style="font-size: 14px;" type="button">Add</button>
</div>
</div>
</table
上面是我试图找到按钮的html代码 在使用webdriver执行时,我的网站上有按钮。 它无法找到。 我尝试过以下不同的方式。
driver.findElement(By.id("addCharityToProjectButton")).click();
driver.findElement(By.xpath("//table/div/div/button[@id='addCharityToProjectButton']")).click();
driver.findElement(By.xpath("//div/div/button[@id='addCharityToProjectButton']")).click();
driver.findElement(By.xpath("//table/tbody/tr/td/div/div/table/tbody/tr[6]/td/input[@id='applyRuleButton']")).click();
driver.findElement(By.xpath(".//button[contains(@onclick, 'Add')]")).click();
请帮助我,让我知道获得解决方案的正确方法
我已尝试过三种不同类型的代码,
答案 0 :(得分:1)
你应该使用WebDriver等待元素可见或存在,即DOM和屏幕上。
WebElement button = new WebDriverWait(driver,TIME).
until(ExpectedConditions.presenceOfElementLocated(By.id("addCharityToProjectButton")));
button.click();
或
visibilityOfElementLocated(By.id("addCharityToProjectButton"));
答案 1 :(得分:0)
试试这个By.xpath(//button[text()='Add'])