如果我想第一次使用类,所以我不必猜测 find_elements_by_xpath(),我有什么选择?目标是编写更少的代码,确保我正在抓取的源代码的任何更改都可以轻松修复。有没有可能本质上
find_elements_by_css_selector('source[1]')
这段代码不能按原样工作。
我在 Python 中使用 selenium,并且可能会使用 phantomJS 作为 webdriver(用于测试的 Firefox)。
如果我想第一次使用类,所以我不必猜测 find_elements_by_xpath(),我有什么选择?目标是编写更少的代码,确保我正在抓取的源代码的任何更改都可以轻松修复。有没有可能本质上
find_elements_by_css_selector('source[1]')
这段代码不能按原样工作。
我在 Python 中使用 selenium,并且可能会使用 phantomJS 作为 webdriver(用于测试的 Firefox)。
在CSS Selectors中,方括号选择属性,因此您的示例代码试图选择具有名为 1 的属性的“源”类型元素,例如
<source 1="your_element" />
而我认为您正在尝试在列表中找到第一个,如下所示:
<source>Blah</source>
<source>Rah</source>
如果你只想要第一个匹配的元素,你可以使用单数形式:
element = find_element_by_css_selector("source")
您使用的表单返回一个列表,因此您还可以获取第 n-1 个元素以找到页面上的第 n 个实例(从 0 开始的列表索引):
element = find_elements_by_css_selector("source")[0]
最后,如果您希望您的 CSS 选择器完全明确地显示它们在哪个元素中查找,您可以使用nth-of-type选择器:
element = find_element_by_css_selector("source:nth-of-type(1)")
您可能会在Sauce Labs 的这篇博客文章中找到一些其他有用的信息,以帮助您编写灵活的选择器来替换您的 XPath。