python硒提交可以交互工作,但不是在脚本中工作,甚至没有时间.sleep

时间:2019-04-23 13:23:42

标签: python selenium

我正在尝试使用selenium Webdriver从python脚本登录网站,以便下载一些仅对注册用户可用的数据。

我有以下代码:

browser = webdriver.Firefox()
browser.get('https://shop.biogast.at/store15/customer/account/login')
emailElem = browser.find_element_by_id('email')
emailElem.send_keys('12345')
passwordElem = browser.find_element_by_id('pass')
passwordElem.send_keys('12345')
passwordElem.submit()

当将命令一一键入到python3 shell时,它可以正常工作。但是,当我将代码作为脚本运行时,用户名和登录名正确填写,但用户名和登录名字段未登录,而不是登录。脚本完成,没有错误消息。

根据其他人在类似情况下的建议,这可能是一个计时问题,因为该脚本的运行速度比逐个键入命令时快得多。因此,我将脚本扩展为包括一些睡眠值。

browser = webdriver.Firefox()
browser.get('https://shop.biogast.at/store15/customer/account/login')
time.sleep(15)
emailElem = browser.find_element_by_id('email')
emailElem.send_keys('12345')
time.sleep(15)
passwordElem = browser.find_element_by_id('pass')
passwordElem.send_keys('12345')
time.sleep(15)
passwordElem.submit()

不幸的是,结果仍然相同。字段被空白,脚本完成没有错误。当我一个接一个地运行命令时,即使命令之间的间隔不到15秒,它也能很好地工作,因此,这似乎并不是一个定时问题。

您是否知道如何找到原因?非常感谢。

1 个答案:

答案 0 :(得分:1)

使用WebDriverWait处理元素。

src/main/java