【发布时间】:2019-02-02 01:12:59
【问题描述】:
我目前正在使用 Selenium,现在已经进入了 CSS 选择器这个有趣但非常困难的世界。
我目前正在考虑选择 Google 工具栏的不同选项。例如,当您搜索某些内容时,在结果页面上,您可以选择在图片、新闻、视频等下方搜索相同的字词
我对选择“图片”链接特别感兴趣。
我已经研究了很长时间,我得到的最接近的是下面的选择器:
div a.q.qs[href]
这会深入到正确的子类,但其中有 16 个。尽管进行了数小时的漫无目的的搜索,但我无法使用围绕锚文本的 contains 方法完成查询,这在目标子类中是独一无二的。
我知道 Selenium 中有一个 By LinkText 选项,但我不确定锚文本在整个页面中是否唯一。另外,我真的很想了解一般的 CSS 选择器,所以即使是这样,我也想解决这个特定问题,以便将其应用于未来的问题。
我正在寻找类似下面的伪 CSS 选择器:
div a.q.qs[href].Anchorcontains("Images")
谁能帮忙?
【问题讨论】:
-
这是一个有趣的问题。我建议您添加一些代码块以使其更具可读性(CSS 选择器)并删除 selenium 和 java 标签,因为即使它对您来说是 java&selenium 问题,问题本身也只关注 css 选择器。跨度>
-
所有链接都有一个名为
tbm的唯一参数:对于图像,它的值是isch,所以我会选择a[href*="isch"]。适用于浏览器,但不确定硒。 -
这是个好主意。或者,您可以假设“图像”项始终是列表中的第二个。如果您确定,在您想要选择图像时,选择“全部”,它是第一个包含链接的项目。
-
如果您希望通过锚点的实际文本内容进行选择,则不能这样做:stackoverflow.com/questions/1520429/…
-
以下是一些 CSS 参考链接,可帮助您入门:W3C reference、SauceLabs CSS Selectors tips 和 Taming Advanced CSS Selectors。