无法找到按钮

时间:2014-08-07 10:27:11

标签: button selenium selenium-webdriver

<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();
  

请帮助我,让我知道获得解决方案的正确方法

我已尝试过三种不同类型的代码,

2 个答案:

答案 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'])