1

我正在尝试使用 CssSelector 在我的网页上定位元素。我正在使用 Firefox 驱动程序。

这是我使用定位器的方式(我检查了 Selenium IDE 是否能够使用它定位我的元素

[FindsBy(How = How.CssSelector, Using = "label:contains('Version: 2.0.')")]
public IWebElement labelVersion;

但是当在 C# 代码中使用它并在我的构造函数中使用 PageFactory.InitElements 对其进行初始化时。

我遇到了这个错误......(错误本身很清楚,但我不知道如何解决它)

感谢任何输入。

OPC.Tests.SmokeTest (TestFixtureSetUp):SetUp:OpenQA.Selenium.InvalidSelectorException:给定的选择器 css=label:contains('Version: 2.0.') 无效或不会生成 WebElement。发生以下错误:[异常...“指定了无效或非法字符串”代码:“12”nsresult:“0x8053000c(NS_ERROR_DOM_SYNTAX_ERR)”位置:“file:///....... /anonymous439571104.webdriver-profile/extensions/fxdriver@googlecode.com/components/driver_component.js 行:5811"]

4

1 回答 1

5

Selenium 将 CSS 查询委托给浏览器。这意味着 CSS 查询需要遵循 CSS 标准。

不幸的是 :contains 不久前从标准中删除了。我建议您使用规范中可用的内容重做选择器或使用 XPATH。

:contains 在 Selenium RC 中有效,因为 RC 使用 Sizzle,如果您想知道为什么它在 RC 而不是 WebDriver 中有效,它是 jQuery 中的选择器搜索库

于 2012-06-10T16:00:28.383 回答