繁体   English   中英

TypeError:__init __()接受2个位置参数,但给出了3个

[英]TypeError: __init__() takes 2 positional arguments but 3 were given

我遇到了一个问题。 程序必须从txt文件获取IP地址,并且每个IP都附带一个IP地址。 检查日志是否可访问。 我不知道为什么在这个简单的代码中有问题。

from termcolor import colored
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException


myfile = [p.rstrip() for p in open('test.txt')]

for ip in myfile:

    driver = webdriver.Chrome('./lib/chromedriver.exe')
    driver.get("http://admin:password@" + ip)
    try:
        element = WebDriverWait(driver, 20).until(
            EC.presence_of_element_located(By.XPATH, ".//*/tbody/tr/td/table/tbody/tr[2]/td[2]")
        )
    except TimeoutException:
        print(colored(ip + " except timeout error", "red"))

    else:
        print(colored(ip + " is OK", "green"))
    finally:
        driver.quit()

错误:

Traceback (most recent call last):
   File "E:/GS/Py/wifiproject/dwl3200.py", line 21, in <module>
   EC.presence_of_element_located(By.XPATH, ".//*/tbody/tr/td/table/tbody/tr[2]/td[2]")
    TypeError: __init__() takes 2 positional arguments but 3 were given

尝试用作

EC.presence_of_element_located((By.XPATH, ".//*/tbody/tr/td/table/tbody/tr[2]/td[2]")))

您应该将By.locator和实际的locator表达式作为参数的元组提供,但不能作为两个单独的参数提供

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM