下面的代码对我来说很好用- 实施等待,在这种情况下,必须强制在 任何DOM查询之前加载页面!
import timefrom selenium import webdriverfrom selenium.common.exceptions import TimeoutExceptionfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0from selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.by import Bydriver = webdriver.Chrome()driver.get("http://games.espn.go.com/ffl/signin")#implement wait it is mandatory in this caseWebDriverWait(driver,1000).until(EC.presence_of_all_elements_located((By.XPATH,"(//iframe)")))frms = driver.find_elements_by_xpath("(//iframe)")driver.switch_to_frame(frms[2])time.sleep(2)driver.find_element_by_xpath("(//input)[1]").send_keys("username")driver.find_element_by_xpath("(//input)[2]").send_keys("pass")driver.find_element_by_xpath("//button").click()driver.switch_to_default_content()time.sleep(4)driver.close()


