我正在从 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>
问题实际上与 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 个小时寻找答案
你让我免于在这个问题上花费几个小时。我的代码是这样的:
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)
你真是个救星来回答这个问题。为我节省了将近 4 个小时。