Python Selenium 在元素外意外搜索

Python Selenium unexpected search outside the element

当我尝试在当前元素中查找元素时,搜索发生在整个网页中

例如我得到一些元素:

year_block = browser.find_element_by_xpath('some condition')

有几个类似的此类元素,但我确保我使用的是正确的元素:

print(year_block.get_attribute('innerHTML'))

然后我需要在“year_block”中找到元素列表 我使用:

plant_id_block_list = year_block.find_elements_by_xpath("//*[contains(text(), 'Plant number')]/following-sibling::input")

但结果我得到了页面上所有此类元素的列表,而不是仅在 year_block

中的此类元素

问题出在哪里?

当您尝试在 中查找与 year_block 相关的元素而不是使用 // 时,您需要使用 .// 将启动关于 year_block 上下文的搜索。实际上,您的代码行将是:

plant_id_block_list = year_block.find_elements_by_xpath(".//*[contains(text(), 'Plant number')]/following-sibling::input")