gam*_*ela 4 selenium xpath css-selectors
假设我正在#myPage元素下查找一些div元素。我的目标是使用 CSS 选择器并将搜索限制为仅#myPage后代。
使用 Selenium XPath 定位器我可以编写如下内容:
WebElement page = driver.findElement(new By.ById("myPage"));
....
List<WebElement> item = page.findElements(new By.ByXPath(".//div"));
Run Code Online (Sandbox Code Playgroud)
然而,尝试使用 CSS 会产生文档中的所有div,而不仅仅是#myPage的后代:
WebElement page = driver.findElement(new By.ById("myPage"));
....
List<WebElement> item = page.findElements(new By.ByCssSelector("div"));
Run Code Online (Sandbox Code Playgroud)
最大的区别在于.//使 XPath 表达式相对的前缀。我在 CSS 语法中找不到类似的属性,我想知道它是否可能。
PS
我知道我可以使用#myPage > div表达式,但随后我将页面查找操作与其后代的查找结合起来,这并不总是可取的。