在此处输入代码我有两个 xPath 字段。
第一:
//*[@id="app"]/div/div/div[2]/div/div[2]/div[2]/div[3]/div[1]
第二:
//*[@id="app"]/div/div/div[2]/div/div[2]/div[2]/div[3]/div[1]/input
我通过以下方式找到并修复了第一个 div:
main_field = driver.find_element_by_xpath('//[@id="app"]/div/div/div[2]/div/div[2]/div[2]/div[3]/div[1]')
有什么方法可以使用 main_field 获取/input 字段吗?我的意思是像 main_field['input']
这样的东西。如果可能,我不想再次使用 find_element_by_xpath
函数。
提前致谢!
最佳答案
当您通过以下方式找到第一个字段时:
main_field = driver.find_element_by_xpath('//[@id="app"]/div/div/div[2]/div/div[2]/div[2]/div[3]/div[1]')
现在,main_field 有可能包含一个/多个子节点。所以要得到特定的 child <input>
field 您可以使用父节点的引用,即 main_field 但您必须调用 find_element_by_*
再次如下:
main_field.find_element_by_xpath('.//input')
关于Python 3.6 Selenium 如何通过父节点的引用找到子节点(xPath),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49653105/