提问人:Xelti 提问时间:7/12/2023 最后编辑:Ajeet VermaXelti 更新时间:7/13/2023 访问量:71
无法通过 Selenium 和 Chromium 访问最新版本的 Google Chrome 浏览器
Can't access the latest version xpath of Google Chrome through Selenium and Chromium
问:
当我访问该网站并尝试通过 Xpath 或其他渠道访问最新版本的 Google 时,我无法访问它。chrome://settings/help
我只想获取最新版本的 Chrome 的字符串。
是否有任何原因或具体情况无法识别 xpath?
错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="main"]//settings-about-page//settings-section[1]/div[2]/div[2]/div[2]"} (Session info: chrome=114.0.5735.199);
请。帮助。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
import time
service = Service(executable_path="chromedriver")
options = webdriver.ChromeOptions()
options.add_argument('start-maximized')
driver = webdriver.Chrome(service=service, options=options)
driver.get('chrome://settings/help')
time.sleep(5)
update_check = driver.find_element(By. XPATH, '//*[@id="main"]//settings-about-page//settings-section[1]/div[2]/div[2]/div[2]').text
print(update_check)
答:
0赞
Ajeet Verma
7/12/2023
#1
鉴于您的XPATH,我想您正在尝试在计算机上获取已安装的Chrome版本的文本。
由于页面高度嵌入了许多元素,因此无法使用通常的定位器策略(如 XAPTH、CSS 选择器、ID 等)定位嵌入其中的元素。shadow-root
shadow-root
这是你如何做到的:
import time
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('start-maximized')
driver = webdriver.Chrome(options=options)
driver.get('chrome://settings/help')
time.sleep(2)
update_check = driver.execute_script("return document.querySelector('settings-ui').shadowRoot.querySelector('settings-main').shadowRoot.querySelector('settings-about-page').shadowRoot.querySelectorAll('settings-section')[0].querySelector('div.secondary').getInnerHTML();")
print(update_check)
输出:
Version 114.0.5735.199 (Official Build) (64-bit)
引用:
评论