gpt4 book ai didi

python - 页面对象模式 - Webdriverwait 问题 - python

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:33 25 4
gpt4 key购买 nike

我正在学习 python 和 selenium。我尝试使用页面对象模式创建一个新项目,但我在 WebdriverWait 方面遇到问题,您可以看到我的代码,接下来,我写下我是如何得到错误的。

页面中的方法:

def testStart(self):
WebDriverWait(self.driver, 15).until(
expected_conditions.element_to_be_clickable((By.ID,
StartPage.username))
)
user = self.driver.find_element(*StartPage.username)
user.click()

我的测试 - 简单;)

startPage = StartPage(self.driver)
startPage.testStart()

和定位器:

username = (By.ID, 'username')

错误:

selenium.common.exceptions.WebDriverException: Message:
invalid argument: 'value' must be a string

当我检查页面中的方法时:

def testStart(self):
WebDriverWait(self.driver, 15).until(
expected_conditions.element_to_be_clickable((By.ID,
*StartPage.username))
)
user = self.driver.find_element(*StartPage.username)
user.click()

我有:

TypeError: find_element() takes from 1 to 3 positional arguments but 4 were given

我该如何改变这个?

最佳答案

错误1:

selenium.common.exceptions.WebDriverException: Message: invalid argument: 'value' must be a string

您的StartPage.username是:username = (By.ID, 'username')

现在,当您等待此元素时:

WebDriverWait(self.driver, 15).until(
expected_conditions.element_to_be_clickable((By.ID,
*StartPage.username))
)

您向其传递的是 By 对象,而不是 ID...

您可以通过以下方式修复此问题:

WebDriverWait(self.driver, 15).until(
expected_conditions.element_to_be_clickable(*StartPage.username)
)

或者将 StartPage.username 更改为:username = 'username' 并将代码保留在等待中...

有关更多信息,请参阅 page-objects .

希望这对您有帮助!

关于python - 页面对象模式 - Webdriverwait 问题 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54197131/

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