Python Expected_conditions并非总是有效

时间:2018-07-26 20:16:05

标签: python python-3.x login web-scraping

尝试从ESPN网上抓取一些数据时遇到了一个奇怪的问题。我有下面的代码,这些代码有时可以按预期工作,但有时有时会挂断尝试登录。这似乎是随机的,我不确定发生了什么。

import time
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

driver = webdriver.Chrome(r'Source')

driver.get("http://games.espn.go.com/ffl/signin")
WebDriverWait(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)

WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,'(//input)[1]')))

driver.find_element_by_xpath("(//input)[1]").send_keys("Username")
driver.find_element_by_xpath("(//input)[2]").send_keys("password")
driver.find_element_by_xpath("//button").click()
driver.switch_to_default_content()
time.sleep(2)

当我按原样运行代码时,尽管页面已完全加载为chrome,但在第二个“ WebDriverWait”期间它经常超时。如果我删除该行,则会收到一条错误消息,内容为:

“ selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:”

1 个答案:

答案 0 :(得分:0)

您检查此xpath吗?显然这是不正确的,您可以在浏览器控制台上尝试。

$x('yourxpath')