import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
import win32com
import win32api
driver=webdriver.Chrome()
sleep(1)
driver.get('https://wanmen.org')
user='18033045273'
pwd='lihaoen20091224'
driver.find_element_by_class_name('containers__btn--Y_DO_').click()
sleep(0.05)
driver.find_element_by_xpath('//*[@id="root"]/div[15]/div[2]/div/div[2]').click()
sleep(0.05)
driver.find_element_by_link_text('登录').click()
sleep(0.05)
driver.find_element_by_xpath('//*[@id="root"]/div[2]/div[2]/div/div[1]/div[2]/div[2]').click()
sleep(0.05)
driver.find_element_by_name('account').send_keys(user)
sleep(0.05)
driver.find_element_by_name('password').send_keys(pwd)
上面是代码,下面是报错
Traceback (most recent call last):
File "C:/Users/benson/Desktop/Python自动化/第七课/2021.6.21.py", line 15, in <module>
driver.find_element_by_xpath('//*[@id="root"]/div[15]/div[2]/div/div[2]').click()
File "C:\Users\benson\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "C:\Users\benson\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\Users\benson\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\benson\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="root"]/div[15]/div[2]/div/div[2]"}
(Session info: chrome=91.0.4472.114)
解决思路:1.将等待时间加长,2.看一下要定位的'//*[@id="root"]/div[15]/div[2]/div/div[2]'是否准确,3.检查该元素是否在一个Iframe中,如果是的话,需先切换到该iframe节点,再运行你写的代码。
这不是正常报错吗,没有找到定位的元素,把等待时间加长点试试