Python:当元素定位器信息从一个单独的fi中提取时,使用Webdriver:“\uu init_uu9()接受2个位置参数,但有3个被赋予”

2024-05-19 00:22:07 发布

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

我对Python和Selenium还比较陌生,我正在尝试对我们的网站进行一些自动化测试。我使用页面对象模型设置测试,这样对定位器的更改只需要在一个地方更新。作为其中的一部分,我设置了一个函数来等待我们的订阅按钮被点击。但是,当我调用此函数时,我得到以下错误:

Traceback (most recent call last):
File "click_subscribe_button_test.py", line 51, in test_subscribe_click
main_page.wait_subscribe_button_clickable()
File "page.py", line 64, in wait_subscribe_button_clickable
wait.until(EC.element_to_be_clickable((*MainPageLocators.subscribe_button)))
TypeError: __init__() takes 2 positional arguments but 3 were given

我在这里和其他网站上读过一些相关的帖子,虽然它们帮助我更接近于解决问题,但我仍然遇到了上述错误。下面是相关代码,它来自两个不同的文件,因为定位器与页面对象位于不同的文件中。在

在页面.py在

^{pr2}$

在定位器.py在

class MainPageLocators (object):
    subscribe_button = (By.CSS_SELECTOR, 'li.last.leaf.subscribe')

问题似乎在于我从一个单独的文件中提取定位器的方式,因为如果我改变了

wait.until(EC.element_to_be_clickable((*MainPageLocators.subscribe_button)))

wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'li.last.leaf.subscribe')))

代码按预期工作。在

我可能不明白*MainPageLocators.subscribe_按钮功能是拉定位器,但我没能追踪出什么问题。在

任何帮助或指导将不胜感激。在


Tags: 文件topybutton页面elementbesubscribe

热门问题