繁体   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