标签:不同 html 输入 google htm pre exe round link
selenium调用headerless
我使用的环境:
python:3.5.4
python的selenium库: 3.141.0
chrome浏览器: 71.0.3578.98
chromedriver下载地址: http://chromedriver.storage.googleapis.com/index.html
注意:一定要确保chrome浏览器和chromedriver版本对应,如果不对应,可能会出现各种奇怪的报错
如何通过selenium调用headless模式呢? 下面是python的代码
from selenium import webdriver chrome_options = webdriver.ChromeOptions() #无头模式 chrome_options.add_argument(‘--headless‘) #实例化Chrome driver driver=webdriver.Chrome(chrome_options=chrome_options) #打开百度地图 driver.get("https://map.baidu.com/") #截屏,文件保存为baidu-map.png driver.save_screenshot("baidu-map.png")
chrome_options.add_argument(‘--window-size=1280,800‘)
js代码可window.open(url)可在新窗口打开一个网页, dirver可执行js代码,具体代码如下:
js="window.open(‘http://www.baidu.com/‘)" driver.execute_script(js)
比如我们打开的第一个页面是[百度地图], 第2个窗口打开的页面是百度.如果我们想在第2个页面的输入框输入selenium,代码如下
from selenium import webdriver chrome_options = webdriver.ChromeOptions() #无头模式 chrome_options.add_argument(‘--headless‘) #设置窗口大小 chrome_options.add_argument(‘--window-size=1280,800‘) #实例化Chrome driver driver=webdriver.Chrome(chrome_options=chrome_options) #打开百度地图页面 driver.get("https://map.baidu.com/") js="window.open(‘http://www.baidu.com‘)" driver.execute_script(js) driver.find_element_by_id("kw").send_keys("selenium") driver.save_screenshot("baidu-map5.png") driver.quit()
但是很奇怪, 代码报错了,no such element: Unable to locate element: {"method":"id","selector":"kw"} 找不到这个元素.但是我们看百度的页面命名可以找到这个元素啊. 我们在这步操作之前截一张图就可以看出来,页面扔在第一个页面,即百度地图的页面, 这时候我们需要切换一些窗口.
注意: 以前的方法,diver.switch_to_window() 已经被driver.switch_to.window替代
search_windows=driver.current_window_handle all_handles=driver.window_handles for handle in all_handles: if handle !=search_windows: driver.switch_to.window(handle)
这2个的使用场景是不同的:
1) 在我们的case执行完对浏览器的操作后,一定要加上driver.quit() ,不然会导致内存爆满;
2) 如果我们只想关闭一个窗口, 则用driver.close()
chrome_options.add_argument("--proxy-server=http://" + ip:port)
# 修改User-Agent chrome_options.add_argument(‘user-agent= ‘你想修改成的User-Agent‘)
chrome_options.add_argument(‘blink-settings=imagesEnabled=false‘)
Chrome Headless模式(二)——Python+selenium+headerless
标签:不同 html 输入 google htm pre exe round link
原文地址:https://www.cnblogs.com/yimiaoyikan/p/10234910.html