jeudi 9 mars 2017

How to deal with TypeError: __call__() takes at least 2 arguments (1 given)?

the under part is the method :

from enum import Enum
from selenium import webdriver
import  time
from selenium.webdriver.common.action_chains import ActionChains

class KeyMouseOperation(Enum):
    CONTEXT_CLICK = 1
    DOUBLE_CLICK = 2
    DRAG_AND_DROP = 3
    CLICK_AND_HOLD = 4

    def keymouse(url, operation_by , elementxpath):
        driver = webdriver.Chrome()
        driver.get(url)
        time.sleep(1)
        driver.maximize_window()
        time.sleep(1)

        if operation_by == KeyMouseOperation.CONTEXT_CLICK:
            result = ActionChains(driver).context_click(driver.find_element_by_xpath(elementxpath)).perform()
        if operation_by == KeyMouseOperation.DOUBLE_CLICK:
            result = ActionChains(driver).double_click(driver.find_element_by_xpath(elementxpath)).perform()
        if operation_by == KeyMouseOperation.DRAG_AND_DROP:
            result = ActionChains(driver).drag_and_drop(driver.find_element_by_xpath(elementxpath), driver.find_element_by_xpath(elementxpath)).perform()
        if operation_by == KeyMouseOperation.CLICK_AND_HOLD:
            result = ActionChains(driver).click_and_hold(driver.find_element_by_xpath(elementxpath)).perform()
        else:
            time.sleep(3)

this is the instance for the method :

from method.key_Mouse import *
KM = KeyMouseOperation()
KM.keymouse("https://www.baidu.com", KeyMouseOperation.CONTEXT_CLICK, "//*[@id='kw']")

but the result is that:

C:\Python27\python.exe C:/Users/chenjia/PycharmProjects/AutomationTestSuite/Case/practice.py
Traceback (most recent call last):
  File "C:/Users/chenjia/PycharmProjects/AutomationTestSuite/Case/practice.py", line 46, in <module>
    KM = KeyMouseOperation()
TypeError: __call__() takes at least 2 arguments (1 given)

Process finished with exit code 1

How to deal with TypeError: call() takes at least 2 arguments (1 given) ?

Aucun commentaire:

Enregistrer un commentaire