2016-01-18 165 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