事实上,我可以使用这个 XPath 找到我想要的确切元素:
//table[@class="summary-table"]/tbody/tr/*/*/*/a[contains(@class, "snippet-title")]
我知道这一点是因为我有一个 XPath 插件可以突出显示检测到的元素。
我想把这个元素遍历分成两部分。第一部分返回一个tr
单元格列表,第二部分在每个tr
单元格中搜索每个a
感兴趣的单元格。
返回tr
单元格的第一部分已编写并正在运行:
@property
def product_elements(self):
xpath = '//table[@class="summary-table"]/tbody/tr'
elems = self.driver.find_elements_by_xpath(xpath)
return elems
但是,我在下面的代码中尝试了各种 XPath 和 css 选择器:
@property
def product_names(self):
xpath = '//a[contains(@class, "lc-snippet-title")]'
for product_elem in self.product_elements:
elem = product_elem.find_element_by_css_selector('.lc-snippet-title')
logging.debug("Found this element {0}".format(
self.pretty_printer.pformat(elem)))
yield elem.text
在WebDriver 元素中找不到a
我想要的东西。tr
因为里面有多个a
标签tr
,所以我必须通过class属性找到我想要的那个。