Webdriverwait python的页面对象模式问题

2024-10-17 06:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学Python和硒。我尝试用页面对象模式创建一个新项目,但是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

我怎样才能改变这个?你知道吗


Tags: to方法selfidbydriver错误username
1条回答
网友
1楼 · 发布于 2024-10-17 06:30:44

错误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。你知道吗

希望这对你有帮助!你知道吗

相关问题 更多 >