Python 2.7 Selenium - 如何获取网页上的所有元素?

时间:2015-09-25 05:33:08

标签: python css selenium xpath element

from selenium import webdriver

fp = webdriver.FirefoxProfile('')
driver = webdriver.Firefox(firefox_profile=fp)
driver.set_window_size(1400, 1000)
driver.get('')

def get_list_of_all_elements(self):
    list_of_elements = self.driver.find_elements_by_xpath('//*')

    for ele in list_of_elements:
        print ele

我希望我的代码打印出页面上的元素,代码可以工作,除了它没有打印出任何东西并且为什么而烦恼。更具体一点,理想情况下我不想要页面上的每个元素,只是设置一个我使用driver.find_element_by_xpath("//img[@title='']")定位的可能图像,标题因图像而异,并且它们没有类/类型/等所以我要么必须使用xpath或css选择器。感谢任何帮助=)。

1 个答案:

答案 0 :(得分:0)

您可能需要花时间通过引入显式等待来加载页面。例如,您可以等待至少一个img元素出现在页面上:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.TAG_NAME, "img"))
)

list_of_elements = self.driver.find_elements_by_css_selector('img[title]')
# ...