selenium 谷歌扩展自动化回溯错误

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

为了保证我的信任钱包帐户的安全,我经常注销我的帐户,并决定编写一个Python代码来快速重新登录,但是当我尝试使用xpath或css选择之类的东西来选择它时,我收到错误在照片里。另外,我的代码如下。

代码

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# chrome ayarlamaları
options = webdriver.ChromeOptions()
options.add_extension('C:/Users/JAXXXXX/AppData/Local/Google/Chrome/User Data/Default/Extensions/egjidjbpglichdcondbcbdnbeeppgdph/2.11.0_0.crx')

# sürücü başlatma
driver = webdriver.Chrome(options=options)

time.sleep(10)
# Butonun yüklenmesini bekleme
buton = driver.find_element(By.CSS_SELECTOR, "ph-no-capture w-full block flex-1 outline-none bg-transparent title-text font-medium text-left")
buton1.click()

错误

Traceback (most recent call last):
  File "C:\Users\JAXXXXX\Desktop\aa\trust.py", line 17, in <module>
    buton = driver.find_element(By.CSS_SELECTOR, "ph-no-capture w-full block flex-1 outline-none bg-transparent title-text font-medium text-left")
  File "C:\Users\JAXXXXX\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 831, in find_element
    return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
  File "C:\Users\JAXXXXX\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 440, in execute
    self.error_handler.check_response(response)
  File "C:\Users\JAXXXXX\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 245, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"ph-no-capture w-full block flex-1 outline-none bg-transparent title-text font-medium text-left"}
  (Session info: chrome=124.0.6367.92)
Stacktrace:
    GetHandleVerifier [0x00007FF66C381502+60802]
    (No symbol) [0x00007FF66C2FAC02]
    (No symbol) [0x00007FF66C1B7CE4]
    (No symbol) [0x00007FF66C206D4D]
    (No symbol) [0x00007FF66C206E1C]
    (No symbol) [0x00007FF66C24CE37]
    (No symbol) [0x00007FF66C22ABBF]
    (No symbol) [0x00007FF66C24A224]
    (No symbol) [0x00007FF66C22A923]
    (No symbol) [0x00007FF66C1F8FEC]
    (No symbol) [0x00007FF66C1F9C21]
    GetHandleVerifier [0x00007FF66C68411D+3217821]
    GetHandleVerifier [0x00007FF66C6C60B7+3488055]
    GetHandleVerifier [0x00007FF66C6BF03F+3459263]
    GetHandleVerifier [0x00007FF66C43B846+823494]
    (No symbol) [0x00007FF66C305F9F]
    (No symbol) [0x00007FF66C300EC4]
    (No symbol) [0x00007FF66C301052]
    (No symbol) [0x00007FF66C2F18A4]
    BaseThreadInitThunk [0x00007FF9911E7344+20]
    RtlUserThreadStart [0x00007FF9929626B1+33]

我尝试了 XPath 和 CSS 选择器。

python selenium-webdriver xpath google-chrome-extension css-selectors
1个回答
0
投票

如果没有看到 HTML,你的 CSS 选择器几乎肯定是问题所在。

driver.find_element(By.CSS_SELECTOR, "ph-no-capture w-full block flex-1 outline-none bg-transparent title-text font-medium text-left")

这些都不是标签...它们似乎都是类,这意味着选择器应该是

driver.find_element(By.CSS_SELECTOR, ".ph-no-capture.w-full.block.flex-1.outline-none.bg-transparent.title-text.font-medium text-left").click()

所有这些类可能都不需要唯一地查找元素,但如果没有看到相关的 HTML 或页面本身,我无法确定这一点。

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