当前位置: 首页 > 面试题库 >

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

龚凯泽
2023-03-14
问题内容

我看到了类似的问题,但就我而言,我的代码中甚至没有“
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()

问题答案:

根据定义,element_to_be_clickable()应在a中调用tuple它,因为它不是
函数 而是 ,其中初始化程序期望 隐式 self* 之外仅包含 1个 参数: __*

class element_to_be_clickable(object):
    """ An Expectation for checking an element is visible and enabled such that you can click it."""
    def __init__(self, locator):
        self.locator = locator

    def __call__(self, driver):
        element = visibility_of_element_located(self.locator)(driver)
        if element and element.is_enabled():
            return element
        else:
            return False

所以代替:

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

您需要(添加一个额外的括号):

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


 类似资料:
  • 函数insert接受对链表中第一个节点的引用、新值和位置,并在列表中的给定位置插入具有给定值的新节点。 函数pop to引用链表中的第一个节点和一个位置,并删除链表中该位置的节点。 函数stringify_linked_list引用链表的第一个节点并返回链表中所有节点的可打印字符串。 到目前为止,我的代码如下。如果你对我如何修复它有任何想法,请让我知道。谢谢!

  • 在我的程序中,我主要想返回一个方法的结果,该方法测试两个学生之间的相等性(即,如果两个学生上的课的数量相等) 我创建了一个名为Student的类。然后我创建了两个函数并定义了它们的属性。实际上,我试图比较student类中的两个对象,而一个方法需要检查这两个对象之间的相等性。

  • Tkinter回调跟踪中的异常(最近的调用是最后一次): 文件“C:...\programs\python\python37\lib\tkinter__init__.py”,第1705行,在调用返回self.func(*args)typeError:done()接受1个位置参数,但给出了2个 有谁知道我犯了什么错误,能给我一个例子,如何使它更好和改进吗?

  • ...为什么Python告诉我我给了它两个参数,而我只给了一个?

  • 问题内容: 如果我有课… 我这样称呼 …为什么当我只给出一个参数时,Python告诉我给它两个参数? 问题答案: 在Python中,这是: …是语法糖,口译员在后台将其翻译为: …,如你所见,它确实有两个参数-从调用者的角度来看,只是第一个参数是隐式的。 这是因为大多数方法会对被调用的对象进行某些处理,因此需要某种方法在该方法内部引用该对象。按照惯例,第一个参数self在方法定义内调用: 如果你呼