大家好,我正在学习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
语句。