Python webdriverwait或expected_conditions对我不起作用



大家好,我正在学习python并尝试在网页浏览器游戏中创建宏,但我无法访问登录部分。我把它固定在按钮上,点击

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
driver = webdriver.Firefox(executable_path="C:\Users\batuh\Desktop\geckodriver.exe")
driver.get("https://www.adaletank.com/")
myPageTittle = driver.title
print(myPageTittle)
assert "AdaletTank | Bombom Pvp Server" in myPageTittle
print("Page loaded succesfuly")
loginbuton = driver.find_element_by_xpath("/html/body/div[6]/div[1]/div[2]/div/div/div/span[1]")
WebDriverWait(driver, timeout=3).until(ec.element_to_be_clickable(loginbuton))
loginbuton.click()

没有webdriverwait它只是不工作,所以我必须先加载按钮,但由于某种原因我找不到按钮

我得到了这个错误

return driver.find_element(*by)
TypeError: selenium.webdriver.remote.webdriver.WebDriver.find_element() argument after * must be        an iterable, not FirefoxWebElement

expected_conditions函数接受一个可迭代对象作为参数,如错误中所示。我相信你可以用这个:

from selenium.webdriver.common.by import By
xpath = "/html/body/div[6]/div[1]/div[2]/div/div/div/span[1]"
loginbuton = driver.find_element_by_xpath(xpath)
WebDriverWait(
driver, timeout=3
).until(
ec.element_to_be_clickable(
(By.XPATH, xpath)
)
).click()

导入By是您需要的额外的import语句。

最新更新