Selenium 返回一个空的 html 正文

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

我正在从 AWS lambda 运行 selenium,以自动化一个过程,我收到一个错误,因为找不到元素,当我打印页面源时,它似乎实际上是空的,我试过睡眠 30 秒,但没有成功,这在本地按预期工作

from time import sleep
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.chrome.options import Options
    from secretsx import get_secret_values



def main():
 chrome_options = Options()  
chrome_options.binary_location = '/opt/headless-chromium'
chrome_options.add_argument("--headless")  
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--single-process')
chrome_options.add_argument('--disable-dev-shm-usage')

driver = webdriver.Chrome('/opt/chromedriver',options=chrome_options)

driver.get(mypage)
driver.maximize_window()
driver.implicitly_wait(30) 

print(driver.page_source) #this returns <html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html> 
python amazon-web-services selenium aws-lambda
3个回答
2
投票

问题实际上与 SSL 证书有关,您可以设置 selenium 忽略它

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


desired_capabilities = DesiredCapabilities.CHROME.copy()
desired_capabilities['acceptInsecureCerts'] = True

driver = webdriver.Chrome('/opt/chromedriver',options=chrome_options,desired_capabilities=desired_capabilities)

我希望这对某人有帮助哈哈,因为我花了 6 个小时寻找答案


0
投票

你让我免于在这个问题上花费几个小时。我的代码是这样的:

    options = Options()
    options.add_argument('--headless')
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-gpu')
    options.add_argument('--disable-dev-shm-usage')    
    desired_capabilities = DesiredCapabilities.CHROME.copy() 
    desired_capabilities['acceptInsecureCerts'] = True
    browser = webdriver.Chrome('chromedriver', options=options, desired_capabilities=desired_capabilities)

0
投票

你真是个救星来回答这个问题。为我节省了将近 4 个小时。

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