gpt4 book ai didi

excel - 如何使用 Selenium 在 Headless 模式下使用 Google Chrome 查找 XPath?

转载 作者:行者123 更新时间:2023-12-04 20:52:16 25 4
gpt4 key购买 nike

我正在尝试从谷歌获取一些商店/公司的手机号码等信息,并将其存储在 Excel 表上。
我使用 Chrome 驱动程序(v_74.0.3729.6)。
它适用于 中的 Chrome普通模式 ,它使用 XPath 找到元素,但当我在 中使用 Chrome 时找不到 headless 模式 .
我试图改变窗口的大小并添加一些选项:

.AddArgument ("--window-size=1920,1080")
.AddArgument ("--no-sandbox")
.AddArgument ("--start-maximized")
.AddArgument ("--disable-gpu")
.AddArgument ("--disable-extensions")
我还尝试了不同的 XPath(但如果它在没有 headless 模式的情况下工作,我想 XPath 是正确的):
browser.FindElementsByXPath("(//span[@class='LrzXr zdqRlf kno-fv'])[1]")
browser.FindElementsByXPath("//*[@id='uid_6']/div[1]/div[2]/div[4]/div/div/span[2]")
我还尝试设置等待时间(以确保页面已完全加载): Application.Wait (Now + TimeValue("0:00:2"))
Dim browser As New ChromeDriver

With browser
.AddArgument ("--window-size=2160,3840")
.AddArgument ("--headless")
End With

denomination = "Fnac Lyon Bellecour"
adresse = "85 Rue de la République 69002 Lyon"
browser.Get ("https://www.google.com")
browser.FindElementByName("q").SendKeys (denomination & " " & adresse)
SendKeys "~"

Application.Wait (Now + TimeValue("0:00:2"))

If browser.FindElementsByXPath("(//span[@class='LrzXr zdqRlf kno-fv'])[1]").Count >= 1 Then
telephone = browser.FindElementByXPath("(//span[@class='LrzXr zdqRlf kno-fv'])[1]").Text
Sheets("Donnees").Cells(1, 13).Value = telephone
End If
它通常会在单元格 M1 中复制商店的手机号码,但找不到该元素。

最佳答案

我已通过 python selenium 进行了验证使用 chrome headless 模式,每次运行此代码时它都可以正常工作。
我用过WebdriverWait这是显式等待并等待元素可点击,然后获取文本值。

相信你可以在VBA中修改这段代码.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('window-size=1920x1080');
driver=webdriver.Chrome(options=chrome_options)
driver.get("https://www.google.com")
denomination = "Fnac Lyon Bellecour"
adresse = "85 Rue de la République 69002 Lyon"
element=driver.find_element_by_name('q')
element.send_keys(denomination + ' ' + adresse)
element.submit()
print(WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//span[@class='LrzXr zdqRlf kno-fv']"))).text)

输出:

+33 825 02 00 20

关于excel - 如何使用 Selenium 在 Headless 模式下使用 Google Chrome 查找 XPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56460451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com