2016-09-22 35 views
0

は私が__init__()を使用していないセレンwebdriverwait:__init __()2つの引数(3、与えられた)

Traceback (most recent call last): 
    File "p3.py", line 21, in <module> 
    WebDriverWait(driver, timex).until(EC.presence_of_element_located(by, element)) 
TypeError: __init__() takes exactly 2 arguments (3 given) 

としてエラーが発生しますなぜこのエラーが発生している正確に取りますか?

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

chrome_path=r"C:\Users\Bhanwar\Desktop\New folder (2)\chromedriver.exe" 
driver =webdriver.Chrome(chrome_path) 
driver.get("https://priceraja.com/mobile/pricelist/samsung-mobile-price-list-in-india") 
#driver.implicitly_wait(10) 
i=0 
timex = 5 
by = By.ID 
hook = "product-itmes-" # The id of one item, they seems to be this plus 
         # the number item that they are 
button = '.loadmore' 
while i<3: 
    element_number = 25*i 
    element=hook+str(element_number)# It looks like there are 25 items added each time, and starts at 25 
    WebDriverWait(driver, timex).until(EC.presence_of_element_located(by, element)) 
    driver.find_element_by_css_selector(button).click() 
    time.sleep(5) # Makes the page wait for the element to change 
    i+=1 
+1

手または再フォーマットそれらによってトレースバックを入力しないでください。実際のエラーは 'init()'の代わりに '__init __()'と言うかもしれないと思います。 –

+0

この解決策が必要 –

+1

あなたの報告書に**正確**があることを確認してください。これは '__init__'メソッドが原因です。これは、インスタンスを作成するときに呼び出されるメソッドです。 'presence_of_element_located()'は '__init__'メソッドを持つクラスで、2つの引数ではなく' locator'を1つだけとります。 –

答えて

2

presence_of_element_located()は、タプルであるロケータを1つだけ引数としてとります。あなたは、呼び出し中のタプルのために必要な(...)括弧を追加するのを忘れ:

WebDriverWait(driver, timex).until(
    EC.presence_of_element_located((by, element))) 
#   these make this a tuple^and  ^
+0

入力ミスによる質問に答えるか、終了することになっていますか? –

+0

@PadraicCunningham:これがタイポグラフィの質問であるかどうかはわかりません。あなたがそれがそうだと思うならば、それを閉じるために自由に投票してください。 –

+0

私は、http://socvr.org/の一部の人たちによれば、私たちはただ閉じて答えてくれないので、簡単に削除することができます。あなたは改造ですので、私は尋ねました。 –

関連する問題