[英]After zoom out unable to find the webelement in selenium webdriver
[英]WebDriver is not able to find out WebElement where as same css works fine when I use Selenium IDE
我正在使用Firefox WebDriver,但由於某種原因,在我的測試中,它無法找到Link / Image WebElement。
當我將Selenium IDE與相同的CSS一起使用時(不適用於WebDriver),它可以正常工作。
有人可以建議使用WebDriver時我在CSS Selector的xpath中需要做哪些更改嗎? 我不知道我在這里想念的是什么。
我的HTML頁面代碼如下所示:我想單擊“新建”鏈接/圖像。
<div id="toolbarcontainer">
<ul id="toolbarlist">
<li>
<a id="btnNewDashboard" title="New" onclick="javascript:$('#dialogAddTab').dialog('open'); return false;" href="#">
<span class="toolbarlistimg"></span>
<span class="toolbarlisttext"></span>
</a>
</li>
<li></li>
<li></li>
</ul> </div>
使用Selenium IDE,使用以下代碼可以很好地進行錄制和播放:
<tr> <td>click</td> <td>css=span.toolbarlisttext</td> <td></td> </tr>
但是,當我在測試中使用下面的代碼時,它不起作用...我嘗試了以下操作-請提出建議
driver.findElement(By.cssSelector("span.toolbarlisttext")).click();
driver.findElement(By.className("toolbarlisttext")).click();
driver.findElement(By.xpath("//a/span[@class='toolbarlisttext']")).click();
driver.findElement(By.xpath("css=span.toolbarlisttext")).click();
謝謝,
更新:2015年1月2日
新按鈕/鏈接實際上位於iFrame下,而我完全忽略了iFrame。 之后,我可以單擊“新建”鏈接。 答案在下面提到。
我認為你需要針對a
位置標簽:
driver.findElement(By.id("btnNewDashboard")).click();
或者,使用By.cssSelector
:
driver.findElement(By.cssSelector("a#btnNewDashboard")).click();
我的一個朋友意識到,“新”鏈接/ img在iFrame中,而在iFrame中,我們必須首先將焦點切換到iFrame,然后單擊“元素”。
樣例代碼:
// Switch the focus to iFrame first
driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='Framework_Client_BusinessIntelligence_0']/iframe")));
// Click on Link/Button/Image present in iFrame
driver.findElement(By.xpath("//*[@id='btnNewDashboard']")).click();
謝謝,
你有嘗試過嗎?
driver.findElement(By.cssSelector("#toolbarlist > #btnNewDashboard > .toolbarlisttext")).click();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.