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
中的此类元素
问题出在哪里?
当您尝试在 xpath 中查找与 year_block
相关的元素而不是使用 // 时,您需要使用 .//
将启动关于 year_block
上下文的搜索。实际上,您的代码行将是:
plant_id_block_list = year_block.find_elements_by_xpath(".//*[contains(text(), 'Plant number')]/following-sibling::input")
当我尝试在当前元素中查找元素时,搜索发生在整个网页中
例如我得到一些元素:
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
问题出在哪里?
当您尝试在 xpath 中查找与 year_block
相关的元素而不是使用 // 时,您需要使用 .//
将启动关于 year_block
上下文的搜索。实际上,您的代码行将是:
plant_id_block_list = year_block.find_elements_by_xpath(".//*[contains(text(), 'Plant number')]/following-sibling::input")