from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
# 无头模式启动
chrome_options.add_argument('--headless')
# 谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('--disable-gpu')
# 禁用图片
#chrome_options.add_argument('blink-settings=imagesEnabled=false')
# 添加代理
#chrome_options.add_argument("--proxy-server=http://" + ip:port)
# 修改User-Agent
#chrome_options.add_argument('user-agent= 你想修改成的User-Agent')
# 打开新的标签页
#js='window.open("https://www.baidu.com/");'
driver.execute_script(js)
# 关闭新打开的标签页
# 分两步走
# 1.获取标签页的句柄
#handlesList = driver.window_handles # 返回一个浏览器中所有标签的句柄列表, 顺序为打开窗口的顺序
# 2. 切换窗口, 关闭标签
#driver.switch_to.window(handlesList[0]) # 切换到百度标签
#driver.close()
# 初始化实例
driver= webdriver.Chrome(executable_path='C:\software\Python37\chromedriver_win32\chromedriver.exe',chrome_options=chrome_options)
# 请求百度
driver.get("http://www.baidu.com")
print(driver.page_source)
#截屏
driver.maximize_window()
time.sleep(2)
picture_url = driver.get_screenshot_as_file('./baidu.png')
driver.quit()
一些写法的变动
driver.switch_to_active_element() ==> driver.switch_to.active_element() 定位到当前聚焦的元素上
driver.switch_to_alert() ==> driver.switch_to.alert() 切换到alert弹窗
driver.switch_to_default_content() ==> driver.switch_to.default_content() 切换到最上层页面
driver.switch_to_frame(frame_reference) ==> driver.switch_to.frame(frame_reference) 通过id、name、element(定位的某个元素)、索引来切换到某个frame
driver.switch_to_window() ==> driver.switch_to.window() 切换到指定的标签页
driver.switch_to.parent_frame() switch_to中独有,可以切换到上一层的frame,对于层层嵌套的frame很有用