参见英文答案 >
Selenium – visibility_of_element_located: __init__() takes exactly 2 arguments (3 given) 1个
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import webdriverwait from selenium.webdriver.support import expected_conditions driver = webdriver.Firefox() driver.get("http://somelink.com/") webdriverwait(driver,10).until(expected_conditions.invisibility_of_element_located(By.XPATH,"//input[@id='message']")) # Gives me an error: TypeError: __init__() takes 2 positional arguments but 3 were given
…
# Simply: expected_conditions.invisibility_of_element_located(By.XPATH,"//input[@id='message']")) # Gives me the same error. TypeError: __init__() takes 2 positional arguments but 3 were given
无论我使用By.XPATH,By.ID还是其他任何内容,错误都会重复出现.
此外,find_element工作得很好:
el = driver.find_element(By.XPATH,"//input[@id='message']") print(el) # returns: [<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="03cfc338-f668-4fcd-b312-8e4a1cfd9f24",element="c7f76445-08b3-4a4c-9d04-90263a1ef80e")>]
建议表示赞赏.
编辑:
解决方法
改变这个
webdriverwait(driver,10).until(expected_conditions.invisibility_of_element_located((By.XPATH,"//input[@id='message']")))
我添加了额外的(),希望这应该工作.