gpt4 book ai didi

python - 引发 TimeoutException(消息、屏幕、堆栈跟踪)TimeoutException : Message:

转载 作者:行者123 更新时间:2023-11-28 16:31:18 25 4
gpt4 key购买 nike

我是 python 和 selenium 的新手,我正在尝试我在 youtube 上看到的一个例子。这是代码示例:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import unittest

class LoginTest(unittest.TestCase):

def test_Login(self):
self.driver = webdriver.Firefox()
self.driver.get("https://www.facebook.com/")
driver = self.driver
facebookUsername = "xxxxxxxx"
facebookPassword = "xxxxxxxx"

emailFieldId="email"
passFieldId ="pass"
loginButtonXpath="//input[@value='Log in']"
fbLogoXpath = "(//a[contains(@href,'logo')])[1]"

emailFieldElement = WebDriverWait(driver, 1).until(lambda driver: driver.find_element_by_id(emailFieldId))
passFieldElement = WebDriverWait(driver, 1).until(lambda driver: driver.find_element_by_id(passFieldId))
loginButtonElement = WebDriverWait(driver, 1).until(lambda driver: driver.find_element_by_id(loginButtonXpath))

emailFieldElement.clear()
emailFieldElement.send_keys(facebookUsername)
passFieldElement.clear()
passFieldElement.send_keys(facebookPassword)
loginButtonElement.click()
WebDriverWait(driver, 1).until(lambda driver: driver.find_element_by_id(fbLogoXpath))
def tearDown(self):
self.driver.quit()

if __name__ == "__main__":
unittest.main()

当我运行它进入 facebook 的代码时,但停止并给我这个错误。

ERROR: test_Login (__main__.LoginTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "facebot.py", line 25, in test_Login
loginButtonElement = WebDriverWait(driver, 1).until(lambda driver: driver.find_element_by_id(loginButtonXpath))
File "C:\Python27\lib\site-packages\selenium\webdriver\support\wait.py", line 76, in until
raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message:
Stacktrace:
at FirefoxDriver.prototype.findElementInternal_ (file:///c:/users/ale/appdata/local/temp/tmpmle1b1/extensions/fxdriv
er@googlecode.com/components/driver-component.js:10667)
at FirefoxDriver.prototype.findElement (file:///c:/users/ale/appdata/local/temp/tmpmle1b1/extensions/fxdriver@google
code.com/components/driver-component.js:10676)
at DelayedCommand.prototype.executeInternal_/h (file:///c:/users/ale/appdata/local/temp/tmpmle1b1/extensions/fxdrive
r@googlecode.com/components/command-processor.js:12643)
at DelayedCommand.prototype.executeInternal_ (file:///c:/users/ale/appdata/local/temp/tmpmle1b1/extensions/fxdriver@
googlecode.com/components/command-processor.js:12648)
at DelayedCommand.prototype.execute/< (file:///c:/users/ale/appdata/local/temp/tmpmle1b1/extensions/fxdriver@googlec
ode.com/components/command-processor.js:12590)

----------------------------------------------------------------------
Ran 1 test in 16.262s

我已经尝试通过查看 youtube 来修复它,但我卡住了,不知道它会是什么。

最佳答案

对于初学者来说,超时值太小了,增加它。另外,您可以只定义一次 WebDriverWait 实例并重复使用:

wait = WebDriverWait(driver, 10)

emailFieldElement = wait.until(lambda driver: driver.find_element_by_id(emailFieldId))
passFieldElement = wait.until(lambda driver: driver.find_element_by_id(passFieldId))
loginButtonElement = wait.until(lambda driver: driver.find_element_by_xpath(loginButtonXpath))

另外,请注意,在找到“登录”按钮时,您应该使用 find_element_by_xpath() 而不是 find_element_by_id()

关于python - 引发 TimeoutException(消息、屏幕、堆栈跟踪)TimeoutException : Message:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com