selenium奇淫技巧

Chromdriver的配置项:https://peter.sh/experiments/chromium-command-line-switches/

下面列举常用配置项:

防止网站识别Selenium代码:

from selenium import webdriver
options = webdriver.ChromeOptions() options.add_experimental_option('excludeSwitches', ['enable-automation'])
driver
= webdriver.Chrome(chrome_options=options)
driver.get('https://www.taobao.com')

Selenium 不加载图片:

from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images":2}
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.taobao.com')

最大化窗口打开浏览器:

注:配置参数前面两个小横线可以去掉,如:--headless 可以写成 headless

from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--start-maximized') # 最大化窗口
options.add_argument('window-size=400,900') # 设置浏览器尺寸 driver
= webdriver.Chrome(chrome_options=options) driver.get('http://www.baidu.com') # 下面这种方法先用chrome默认大小打开,再最大化或自定义尺寸
driver = webdriver.Chrome() driver.get('http://www.baidu.com') driver.maximize_window() # 窗口最大化 driver.set_window_size(600, 900) # 自定义尺寸

 

options.add_argument('--headless') #浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
options.add_argument('--incognito') # 无痕模式
options.add_argument('--disable-infobars') # 不显示 chrome正受到自动测试软件的控制。
options.add_argument('--hide-scrollbars') # 隐藏滚动条
options.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度

对JS alert()弹窗的处理:

# 已经有弹窗弹出

# 捕获弹窗
alert = driver.switch_to.alert # 或者 driver.switch_to_alert()
# 读取弹窗内容
print(alert.text)
# 点击确定关闭弹窗
alert.accept()

 对 iFrame框架处理:

# 可以把框架理解为浏览器的一个新标签页
# 切换到框架后就可以把框架当作一个打开的网页进行操作
# 切换到iframe框架
driver.switch_to.frame('框架name属性值') # 或者 driver.switch_to_frame('框架name属性值')
driver.find_element_by_id('frameLink').click()
driver.switch_to.parent_frame() # 再切换到父框架

待更新...

原文地址:https://www.cnblogs.com/cloak/p/11227462.html