简体   繁体   English

Selenium Python 中 find_element 的正确语法

[英]Proper syntax for find_element in Selenium Python

I am attempting to build a web scraper in Selenium.我正在尝试在 Selenium 中构建一个网络爬虫。 The first thing I want the script to do is to log in with my credentials into a database.我希望脚本做的第一件事是使用我的凭据登录到数据库。 Thus, I attempted to use find_element in order locate the user id/password entry fields.因此,我尝试使用 find_element 来定位用户 ID/密码输入字段。

However, when I used find_element, I was thrown the following error: "By" is not defined Pylance (reportUndefinedVariable).但是,当我使用 find_element 时,我被抛出了以下错误:“By”未定义 Pylance (reportUndefinedVariable)。

I've read the Selenium 4 documentation at selenium.dev, but I'm not sure what exactly has gone wrong here.我在 selenium.dev 上阅读了 Selenium 4 文档,但我不确定这里到底出了什么问题。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.edge.service import Service as EdgeService
from selenium.webdriver.firefox.service import Service as FirefoxService
from selenium.webdriver.ie.service import Service as IEService
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.firefox import GeckoDriverManager
from webdriver_manager.microsoft import EdgeChromiumDriverManager
from webdriver_manager.microsoft import IEDriverManager


def test_driver_manager_chrome():
    service = ChromeService(executable_path=ChromeDriverManager().install())

    driver = webdriver.Chrome(service=service)

    driver.quit()

#open the browser

driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.maximize_window

#navigate to the website

driver.get("URL")

#log in 

userID = driver.find_element(By.ID, "_58_login")

I've found the solution - By needs to be imported separately.我找到了解决方案 - By 需要单独导入。 Thus a separate line must be added to this code:因此,必须在此代码中添加单独的行:

from selenium.webdriver.common.by import by 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM