Python Selenium By 引发 AttributeError:类型对象“By”没有属性“XPATH”

问题描述 投票:0回答:2

我对硒有疑问。

def main_test():
    chrome_options = Options()
    prefs = {"download.default_directory": f"{os.getcwd()}/Music"}
    chrome_options.add_argument("user-data-dir=selenium")
    chrome_options.add_experimental_option("prefs", prefs)
    dr = webdriver.Chrome(options=chrome_options, service=Service(ChromeDriverManager().install()))
    dr.get(URL)
    print(f"{selenium.__version__=}")
    dr.find_element(By.XPATH, "/html/body/div[1]/div[1]/div/div[1]/ul/li[2]/a").click()
    dr.quit()


if __name__ == '__main__':
    main_test()

这是我的代码。我想我正确地遵循了文档。虽然,运行应用程序时我收到此错误:

selenium.__version__='4.6.0'
Traceback (most recent call last):
  File "/Users/andrea/Dev/Python/custom_scripts/ytchannel/main.py", line 142, in <module>
    main_test()
  File "/Users/andrea/Dev/Python/custom_scripts/ytchannel/main.py", line 137, in main_test
    dr.find_element(By.XPATH, "/html/body/div[1]/div[1]/div/div[1]/ul/li[2]/a").click()
AttributeError: type object 'By' has no attribute 'XPATH'

我不知道我做错了什么...... 如果需要,我可以添加所有可能的细节。

编辑: 这是我的进口:

import socket
import httpcore
import re
import os
import json
import selenium
import httpx as web
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
from time import sleep
python-3.x selenium selenium-webdriver selenium-chromedriver attributeerror
2个回答
1
投票

您的代码看起来正确。
确保您正确导入了

By

应使用此导入:

from selenium.webdriver.common.by import By

0
投票

enter code here
#你好,这是我的代码

enter code here
来自 selenium.webdriver.common.by 导入
enter code here
从 selenium 导入 webdriver
enter code here
导入请求
enter code here
来自 lxml 导入 etree
enter code here
导入时间
enter code here
url = 'https://www.baidu.com'
enter code here
driver = webdriver.Chrome()
enter code here
driver.get(url)

enter code here
时间.睡眠(3)
enter code here
driver.find_element(by=By.XPATH, value='//*
enter code here
[@id="kw"]').send_keys('python')

enter code here
时间.睡眠(3)
enter code here
driver.find_element(by=By.ID,value='su').click()

enter code here
时间.睡眠(10)
enter code here
退出()

enter code here
#不报告错误

© www.soinside.com 2019 - 2024. All rights reserved.