Chrome 解决Python中模块属性错误的困难

eanckbw9  于 2023-05-11  发布在  Go
关注(0)|答案(1)|浏览(98)

我现在正在学习 selenium 。我的版本是4.9.1。当我尝试导入并使用模块的全名时,它给出了这个错误-

selenium.webdriver has no attribute find_element

这是我写的代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.action_chains import ActionChains

browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

browser.maximize_window()

browser.get("https://www.asurascans.com/?s=Beast+Burn")

element = webdriver.find_element(By.CLASS_NAME, "surprise")

action = ActionChains(browser)

action.click(on_element = element)

action.perform()

browser.quit()

print("succesfull run!")

我试着把它改成-

webdriver.chrome.webdriver.find_element

但是,我得到了和以前一样的错误。

z9smfwbn

z9smfwbn1#

正如@BoarGules在评论中正确建议的那样,将webdriver.find_element(...)更改为browser.find_element(...)
除此之外,我还看到了几个问题:
1.我在你的代码中没有看到By导入,但你在代码中使用了它。需要导入from selenium.webdriver.common.by import By
1.由于您使用的是selenium v4.9.1,因此您不需要WebDriverManager来处理浏览器驱动程序,因此您的代码可以简化如下:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

browser = webdriver.Chrome()
browser.maximize_window()
browser.get("https://www.asurascans.com/?s=Beast+Burn")
element = browser.find_element(By.CLASS_NAME, "surprise")
action = ActionChains(browser)
action.click(on_element=element)
action.perform()
browser.quit()
print("succesfull run!")

相关问题