相关疑难解决方法(0)

Selenium - visibility_of_element_located:__ init __()只需2个参数(给定3个)

我在使用Selenium Python Bindings的测试代码中收到此错误:

>           twitter_campaigns = wait.until(EC.visibility_of_element_located(By.CSS_SELECTOR, TWITTER_CAMPAIGNS))
E           TypeError: __init__() takes exactly 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)

这就是我执行的:

class TestTwitter(TestLogin, TestBuying):

    def setup(self, timeout=10):
        self.driver = webdriver.Firefox()
        self.driver.get(BASEURL)
        self.driver.implicitly_wait(timeout)

    def test_campaigns_loaded(self, timeout=10):
        self.signin_action()
        self.view_twitter_dashboard()
        self.select_brand()
        wait = WebDriverWait(self.driver, timeout)
        twitter_campaigns = wait.until(EC.visibility_of_element_located(By.CSS_SELECTOR, TWITTER_CAMPAIGNS))
        assert True == twitter_campaigns

    def teardown(self):
        self.driver.close()
Run Code Online (Sandbox Code Playgroud)

所以我想知道为什么我得到了上述错误,在我没有定义__init__()方法的所有类中,我将setUp和tearDown方法定义为pytest跟随.任何想法为什么要采取3 args?

python selenium pytest selenium-webdriver

6
推荐指数
1
解决办法
4587
查看次数

__init__() 接受 2 个位置参数,但使用 WebDriverWait 和 Expected_conditions 作为 Selenium Python 的 element_to_be_clickable 给出了 3 个位置参数

我看到了类似的问题,但就我而言,我的代码中甚至没有“init”函数。如何解决这个问题呢?问题出在线路上(EC.element_to_bo_clickable)

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome(executable_path="C:\Chromedriver\chromedriver.exe")
driver.implicitly_wait(1)
driver.get("https://cct-103.firebaseapp.com/")

element = WebDriverWait(driver, 1).until
(EC.element_to_be_clickable(By.CLASS_NAME, "MuiButton-label"))

element.click()
Run Code Online (Sandbox Code Playgroud)

python selenium webdriver selenium-webdriver webdriverwait

0
推荐指数
1
解决办法
2109
查看次数