簡體   English   中英

Selenium WebDriver問題與cssSelector

[英]Selenium WebDriver Issue with cssSelector

我試圖在Selenium 2.0 WebDriver中使用CSS選擇器單擊一個按鈕。 問題是我能夠與Selenium RC一起運行的腳本不能與WebDriver一起使用。 碼:

Selenium RC:

selenium.click("css=.gwt-Button:contains('Run Query')");

哪個工作絕對沒問題。

Selenium WebDriver:

driver.findElement(By.cssSelector(".gwt-Button:contains('Run Query')")).click(); 

這不起作用。 我正在使用:selenium-server-standalone-2.9.0.jar和Firefox 5.0版。 任何人都可以幫我弄清楚為什么cssSelector不能使用WebDriver?

'Contains'正在從CSS 3中棄用.Webdriver支持瀏覽器本機支持的任何內容。 它適用於selenium RC,因為RC使用Sizzle庫作為css選擇器,它支持'contains'。 你嘗試過類似的東西嗎

WebElement element = driver.findElement(By.cssSelector(".gwt-Button[type='button']");
element.click();

如果這不是唯一的,那么您可能需要進一步過濾它。 如果您的站點使用jQuery,那么您可以使用jQuery中的'contains'選擇器。

JavascriptExecutor js = ((JavascriptExecutor)driver);
WebElement element = (WebElement) js.executeScript("return $(\".gwt-Button:contains('Run Query')\")[0];");
element.click();

該語法看起來有效,當我在測試頁面上刪除一些元素然后轉到我的控制台並執行$(“。gwt-Button:contains('Run Query')”)。當我更改文本時,我得到1的按鈕。 所以我唯一能想到的就是你可能有一個Run Query按鈕存在於頁面上但是沒有顯示,所以你得到了運行時異常。 您可能希望在點擊之前檢查它是否顯示。 或者創建元素列表,然后刪除所有隱藏(display == false)元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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