我使用Selenium的v2.52和WebDriver与C#。我想实现的目标应该相当简单,但我无法找到解决方案:我想通过多个By
-criteria找到一个元素。找到一个满足多个By-criteria的Selenium Webdriver元素
比方说,我有这样的事情:
<a href="#" class="foo">Click me!</a>
<a href="#" class="bar">Click me!</a>
<p class="foo">Click me!</p>
忽略了一个事实,我可以使用By.CssSelector
,By.CssSelector
,By.XPath
等。我假定它应该可以做这样的事情:
driver.FindElement(By.TagName("a").ClassName("foo"))
// ...or something like this...
driver.FindElement(By.TagName("a"), By.ClassName("foo"))
OpenQA.Selenium.Support.PageObjects.ByChained
不会做的伎俩,因为它是搜索层次。
有没有办法找到符合多个By
-criteria的元素?
最好的问候, 卡斯滕
,什么是错用'XPath'和'CssSelector'? – Andersson
它没有什么不对。好的,也许XPath有点静态。我只是想知道我是否可以像我描述的那样找到元素。 –
我想没有这样的方式来找到多个过滤器的元素。无论如何,'xpath'会更加灵活,因为只有'xpath'和'cssSelector'才能找到许多'HTML'属性。还要注意,包含空格的类名不能与By.ClassName(“foo”)方法匹配,但可以与By.XPath('// * [@ class =“foo”]匹配')'... – Andersson