簡體   English   中英

當我使用Selenium IDE時,WebDriver無法找出在同一CSS上工作正常的WebElement

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM