【发布时间】:2014-11-12 14:30:13
【问题描述】:
我使用简单的代码作为
[FindsBy(How = How.CssSelector, Using = "div[id=1]")]
private IWebElement _plasticOption;
查找 id = 1 的元素。
这是页面工厂的,如果有人不知道是什么,我们可以把上面的代码改成下一个:
IWebElement element = driver.FindElement(By.CssSelector("div[id=1]"));
所以,这个简单的代码在下一段 HTML 中找不到元素:
<div class="b-wide-option disabled" data-bind="css: { selected: IsSelected, disabled: !IsVisible() }, click: Select, attr: { id: Id }" id="1"> </div>
但我可以通过以下方式简单地找到这个元素:
[FindsBy(How = How.Id, Using = "1")]
private IWebElement _plasticOption;
我真的想知道为什么我无法使用 CssSelector 找到这个元素。
我有:
selenium webdriver v.2.43.1
chromedriver v. 2.10
Chrome 浏览器 v. 37.0.2062.120
【问题讨论】:
-
您是否尝试过使用
#符号作为id?例如,By.CssSelector("div#1")? -
是的,我也尝试过只使用 # 不带标签名称
-
@Mark Rowlands:请参阅我的回答,了解为什么这也不起作用。
标签: c# selenium selenium-webdriver webdriver css-selectors