如图,我们想获取#document下面body的内容。
如果使用
1.driver = webdriver.Chrome()
2.driver.get(url)
3.driver.find_element_by_xpath
此时会发现#document下的body中的内容为空。
document is a virtual element, which doesn't really mean anything.
在get(url)之后使用
driver.switch_to_default_content()
frame = driver.find_elements_by_tag_name('iframe')[0]
driver.switch_to_frame(frame)
跳转到iframe中,然后再driver.find_element_by_xpath即可。
参考:
https://stackoverflow.com/questions/24360135/python-selenium-webdriver-finding-document-element
https://stackoverflow.com/questions/21474605/what-does-document-mean
通过路径找:
find_element_by_xpath
find_elements_by_xpath 复数形式
通过id找:
find_element_by_id
find_elements_by_id 复数形式
通过class_name找:
find_element_by_class_name
find_elements_by_class_name 复数形式