Selenium无法定位edostavka.by登录页密码登录按钮问题求助
问题:无法定位edostavka.by登录页的「Войти с паролем」按钮
我需要编写程序通过手机号和密码登录edostavka.by网站,直接访问密码登录链接https://edostavka.by/login?screen=withPassword会被重定向到手机号登录页https://edostavka.by/login?screen=phone。页面上存在「Войти с паролем」(密码登录)按钮,点击该按钮应跳转至密码登录页,但Selenium无法定位此元素。
现有代码
from selenium import webdriver import time from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from fake_useragent import UserAgent as ua from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC ua = ua(browsers='chrome') driver_service = Service(executable_path=r'C:\Users\37533\Desktop\dostavka\dostavka\chromedriver\chromedriver.exe') options = webdriver.ChromeOptions() options.add_argument(f'user-agent={ua}') driver = webdriver.Chrome(service=driver_service) driver.maximize_window() #url = 'https://edostavka.by/login?screen=withPassword' url = 'https://edostavka.by/login?screen=phone' try: driver.get(url=url) time.sleep(3) driver.find_element(By.NAME, 'phone').send_keys('132456789') driver.find_element(By.LINK_TEXT, 'Войти с паролем').send_keys(Keys.ENTER) time.sleep(5) except Exception as e: print(e) finally: driver.close() driver.quit()
报错信息
Message: no such element: Unable to locate element: {"method":"link text","selector":"Войти с паролем"} (Session info: chrome=108.0.5359.125) Stacktrace: Backtrace: (No symbol) [0x00FEF243] (No symbol) [0x00F77FD1] (No symbol) [0x00E6D04D] (No symbol) [0x00E9C0B0] (No symbol) [0x00E9C22B] (No symbol) [0x00ECE612] (No symbol) [0x00EB85D4] (No symbol) [0x00ECC9EB] (No symbol) [0x00EB8386] (No symbol) [0x00E9163C] (No symbol) [0x00E9269D] GetHandleVerifier [0x01289A22+2655074] GetHandleVerifier [0x0127CA24+2601828] GetHandleVerifier [0x01098C0A+619850] GetHandleVerifier [0x01097830+614768] (No symbol) [0x00F805FC] (No symbol) [0x00F85968] (No symbol) [0x00F85A55] (No symbol) [0x00F9051B] BaseThreadInitThunk [0x771800F9+25] RtlGetAppContainerNamedObjectPath [0x779C7BBE+286] RtlGetAppContainerNamedObjectPath [0x779C7B8E+238]
已尝试的解决方法
- 使用XPATH、CLASS_NAME、LINK_TEXT等多种元素定位方式
- 用WebDriverWait替代
time.sleep()等待元素加载完成 - 尝试
click()、submit()、send_keys(Keys.ENTER)等多种点击触发方式 - 检查页面iframe,确认页面中4个iframe均为空,排除iframe嵌套问题
已花费6-7小时尝试解决,仍未找到有效方法,寻求帮助。
内容的提问来源于stack exchange,提问作者Pr1m3raaa
相关产品推荐
相关产品推荐

