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