我刚刚开始学习 Selenium,需要使用云中的 jenkins 机器验证登录网页,该机器没有 GUI。我设法在具有 UI 的系统上成功运行该脚本。但是,当我修改脚本以无头运行时,它无法显示无法定位元素。我的脚本如下:
#!/usr/bin/env python3
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
import time
import argparse
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--window-size=1120, 550')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--allow-running-insecure-content')
driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=chrome_options)
driver.implicitly_wait(5)
lhip = '13.14.15.16'
user = 'username'
paswd = 'password'
parser = argparse.ArgumentParser()
parser.add_argument('-i', '--lh_ip', type=str, metavar='', default=lhip, help='Public IP of VM' )
parser.add_argument('-u', '--usr', type=str, metavar='', default=user, help='Username for VM')
parser.add_argument('-p', '--pwd', type=str, metavar='', default=paswd, help='Password for …Run Code Online (Sandbox Code Playgroud) 我试图使用无头镀铬驱动程序检索网站的HTML代码.但是我得到了"许可被拒绝"的消息.如果我使用"常规"驱动程序,它一切正常.
有没有办法绕过那个?
这是我的第一篇文章,所以我为格式化中的任何潜在错误道歉
from selenium import webdriver
#Headless driver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
driver1 = webdriver.Chrome(executable_path='./chromedriver', options=chrome_options,
service_args=['--verbose', '--log-path=/tmp/chromedriver.log'])
driver1.get('https://www.size.co.uk/')
html = driver1.page_source
html
Run Code Online (Sandbox Code Playgroud)
我收到的消息是:
<html xmlns="http://www.w3.org/1999/xhtml"><head>\n<title>Access Denied</title>\n</head><body>\n<h1>Access Denied</h1>\n \nYou don\'t have permission to access "http://www.size.co.uk/" on this server.<p>\nReference #18.ac81655f.1548818550.73b12da\n\n\n</p></body></html>
Run Code Online (Sandbox Code Playgroud)
普通司机:
driver = webdriver.Chrome('./chromedriver')
driver.get('https://www.size.co.uk/')
html = driver.page_source
driver.quit()
html
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望输出与后一种情况一样,不会每隔几秒钟弹出新窗口.
python selenium selenium-chromedriver selenium-webdriver google-chrome-headless