2016-10-10 22 views
0

問題が発生しました。プログラムはIPアドレスをtxtファイルから取得しなければならず、それぞれのipに対して来ました。ログが無駄であるかどうかを確認してください。 私はこの単純なコードでなぜ問題があるのか​​分かりません。TypeError:__init __()は2つの位置引数をとりますが、3つは与えられました

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:[email protected]" + 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 

答えて

1

あなたは、引数のタプルとしてBy.locatorと実際のロケータ表現を提供ではなく、二つの別々の引数

とすべきである

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

として使用するようにしてください

関連する問題