![](/img/trans.png)
[英]Selecting drop-down using Selenium Python - Unable to locate element: {“method”:“css selector”,“selector”:"[id=
[英]Getting Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="None"]"} Python when using selenium
我目前正在尝试使用 selenium 来帮助我在linkedin 上编写一个自动应用机器人。 登录后,我无法在链接的网站上选择“工作”元素。代码如下所示:
from unicodedata import name
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import json
from selenium.webdriver.common.by import By
from time import sleep
from sympy import Id
class EasyApplyLinkedIn ():
def __init__(self,data):
"""param initialization"""
self.email =data ["email"]
self.password = data["password"]
self.keywords = data["keywords"]
self.location = data["location"]
self.driver = webdriver.Chrome(r'ApplicationBot\driver_path\chromedriver.exe')
def loginLinkedIn (self):
self.driver.get("""https://www.linkedin.com/loginsession_redirect=https%3A%2F%2Fwww%2Elinkedin%2Ecom%2Fcompany%2Flogin&fromSignIn=true&trk=organization_guest_nav-header-signin""")
## Introduce email and password and hit enter
login_email =self.driver.find_element(By.NAME,'session_key')
login_email.clear ()
# basically use the sendkeys fxn to send our info to the page
login_email.send_keys(self.email)
login_password =self.driver.find_element(By.NAME,'session_password')
login_password.clear ()
# basically use the sendkeys fxn to send our info to the page
login_password.send_keys(self.password)
login_password.send_keys(Keys.RETURN)
def job_search (self):
## clicking on the job button
self.driver.implicitly_wait(5)
searchDriver = self.driver.find_element()
下面的代码是我特别遇到麻烦的地方。
jobs_link =searchDriver(By.LINK_TEXT,'Jobs')
clicl_jobs_link= searchDriver.click
sleep (1)
job_box = searchDriver(By.XPATH,"//*[@id='global-nav']/div/nav/ul/li[7]/button/div/div/li-icon/svg/path")
searchDriver.clear()
send_keyword = searchDriver.send_keys(self.keywords)
sleep (1)
## specify location
location_box = searchDriver(By.XPATH,"//input[starts-with(@id,'jobs-search-box-location']") #find via xml path expression
searchDriver.clear()
send_location = searchDriver.send_keys(self.location)
sleep (1)
## hitting enter
searchDriver.send_keys(Keys.RETURN)
我什至输入了一些等待时间,我也尝试过比代码中更长的等待时间,但它仍然不起作用
if __name__ =='__main__':
with open ('E:\Job\ApplicationBot\config.json') as config_files:
data = json.load(config_files)
bot = EasyApplyLinkedIn (data)
bot.loginLinkedIn()
sleep (5)
bot.job_search()
这是我收到的错误消息: [9080:29296:0720/161241.697:ERROR:device_event_log_impl.cc(214)] [16:12:41.697] USB:usb_device_handle_win.cc:1048 无法从节点连接读取描述符:连接到系统的设备不工作。 (0x1F) [9080:29296:0720/161241.716:ERROR:device_event_log_impl.cc(214)] [16:12:41.716] USB:usb_device_handle_win.cc:1048 无法从节点连接读取描述符:连接到系统的设备是不工作。 (0x1F) Traceback(最近一次调用最后一次):文件“e:\Job\ApplicationBot\main.py”,第 79 行,在 bot.job_search()
文件“e:\Job\ApplicationBot\main.py”,第 44 行,在 job_search searchDriver = self.driver.find_element() 文件“C:\Users\lihua\AppData\Roaming\Python\Python39\site-packages\selenium \webdriver\remote\webdriver.py",第 857 行,在 find_element 返回 self.execute(Command.FIND_ELEMENT, { File "C:\Users\lihua\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\ remote\webdriver.py”,第 435 行,在执行 self.error_handler.check_response(response) 文件“C:\Users\lihua\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\remote\errorhandler.py ",第 247 行,在 check_response 中引发 exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“method”:“css selector”,“selector”:” [id="None"]"}(会话信息:chrome=103.0.5060.114)堆栈跟踪:回溯:Ordinal0 [0x005756B3+2184883] Ordinal0 [0x0050E5F1+1762801] Ordinal0 [0x00423DA8+802216] Ordinal0 [0x00156DDB40+90004]DDB40+99004 +990683] Ordinal0 [0x0047EC32+1174578] Ordinal0 [0x0046CB54+1100628] Ordinal0 [0x0047CF52+1167186] Ordinal0 [0x0046C926+1100070] Ordinal0 [0x00446EA0+945824] Ordinal0 [0x00447D96+949654] GetHandleVerifier [0x00814192+2704034] GetHandleVerifier [0x0080687D+2648461 ] GetHandleVerifier [0x0060119A+529066] GetHandleVerifier [0x00600006+524566] Ordinal0 [0x00514F2B+1789739] Ordinal0 [0x00519978+1808760] Ordinal0 [0x00519A65+1808997] Ordinal0 [0x00522A01+1845761] BaseThreadInitThunk [0x76CAFA29+25] RtlGetAppContainerNamedObjectPath [0x77A87A9E+286] RtlGetAppContainerNamedObjectPath [0x77A87A6E+238]
我认为这行代码是问题所在:
searchDriver = self.driver.find_element()
这段代码的目的是什么? 你告诉它要搜索,但你还没有告诉它要搜索什么。
所以我猜测该函数默认为按 id 搜索,但由于你没有给它一个 id,你会得到id=None
错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.