2016-01-18 56 views
-1

HTML代码:硒的webdriver - 无法按钮点击

<div class="buttonBG"> 
<input type="button" onclick="window.location.href='?mod=eA&amp;act=00001';"  class="buttonGreen" value="TK">   
<input type="button" onclick="ttoggle('carianDiv');" class="buttonGreen" value="CK"> 
</div> 

下面是我的Java代码,当我尝试用下面的代码。我能知道什么是错在我的硒的webdriver代码:

driver.findElement(By.xpath("//input[@class='buttonGreen' and contains(@onclick, 'window.location.href='?mod=eA&act=00001')]")).click(); 
+0

这是缺少HTML代码 -

\t \t \t \t
Sandeep

+2

你有什么错误信息?分享你分享你的错误信息或几行你的HTML? – Aravin

+0

线程“main”中的异常org.openqa.selenium.NoSuchElementException:无法找到元素:{“method”:“css selector”,“selector”:“[value ='TK']”} 命令持续时间或超时: 5.03秒 – Sandeep

回答

1

试图通过价值

driver.findElement(By.cssSelector("[value='TK']")).click(); 

而对于什么是错的,你是在HTML时寻找?mod=eA&act=00001搜索其

?mod=eA&amp;act=00001

编辑

另一种解决方案是插入按钮列出,并通过指数点击:

List<WebElement> buttons = driver.findElements(By.className("buttonGreen")); 
buttons.get(0).click(); 

您也可以尝试使用显式的等待

WebDriverWait wait = new WebDriverWait(driver, 10); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("[value='TK']")).click(); 

这将等待长达10秒的按钮在点击它之前可见。您可以更改选择器或时间跨度。

+0

男人它不工作。我尝试了您的更改,但仍无法正常工作。 – Sandeep

+0

@Sandeep我又增加了一个解决方案 – Guy

+1

谢谢小伙子的回复我得到了答案。我的div在iFrame中,所以首先我切换到iframe,然后它为我工作。 – Sandeep

1

尝试使用XPath而不是CSS

driver.find_element(By.XPATH, '//input[@onclick=\'window.location.href=\'?mod=eA&amp;act=00001\';\']').click() 

编辑

这里是代码切换到的iFrame,

driver.switchTo().frame("frame_name"); 

注意:完成内部操作后iframe,您必须使用以下命令再次返回到主窗口。

driver.switchTo().defaultContent(); 
+1

谢谢你的回复我得到了答案。我的div在iFrame中,所以首先我切换到iframe,然后它为我工作。 – Sandeep

+0

我已经添加了切换到iframe的代码。 – Aravin