webdriver之富文本,Firefox配置加载
chrome驱动下载:http://chromedriver.storage.googleapis.com/index.html
加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载,
profile_directory既为浏览器配置文件的路径地址
二、FirefoxProfile
1.要想了解selenium里面API的用法,最好先看下相关的帮助文档打开cmd窗口,
输入如下信息:
-》python
-》from selenium import webdriver
-》help(webdriver.FirefoxProfile)
Help on class FirefoxProfile in module
selenium.webdriver.firefox.firefox_profile:
class FirefoxProfile(builtin.object)
| Methods defined here:
|
| init(self, profile_directory=None)
| Initialises a new instance of a Firefox Profile
|
| :args:
| - profile_directory: Directory of profile that you want to use.
| This defaults to None and will create a new
| directory when object is created.
2.翻译过来大概意思是说,这里需要profile_directory这个配置文件路径的参数
3.profile_directory=None,如果没有路径,默认为None,启动的是一个新的,
有的话就加载指定的路径。
三、profile_directory
1.问题来了:Firefox的配置文件地址如何找到呢?
2.打开Firefox点右上角设置>?(帮助)>故障排除信息>显示文件夹
四、启动配置文件
1.由于文件路径存在字符:\ ,反斜杠在代码里是转义字符,这个有点代码基础的应该都知道。
2.遇到转义字符,为了不让转义,有两种处理方式:
第一种:\ (前面再加一个反斜杠)
第二种:r”\"(字符串前面加r,使用字符串原型)
1 from selenium import webdriver 2 import time 3 # 加载Firefox配置文件,可免登录 4 profile_directory = r'C:\Users\ct-wyl\AppData\Roaming\Mozilla\Firefox\Profiles\lt6n8ynh.default' 5 profile = webdriver.FirefoxProfile(profile_directory) 6 webdriver = webdriver.Firefox(profile) 7 blogurl = 'https://www.cnblogs.com' 8 yanrublog = blogurl + r'/FlyToDream' 9 webdriver.get(yanrublog) 10 # 点击新随笔 11 webdriver.find_element_by_id('blog_nav_newpost').click() 12 time.sleep(2) 13 edittitle = u'pythong+selenium自动创建随笔' 14 editbody = '这里是发帖区域,赶紧写下你的思绪' 15 webdriver.find_element_by_id('Editor_Edit_txbTitle').send_keys(edittitle) 16 # 第一种写法:通过切换iframe 17 # iframe = webdriver.find_element_by_id('Editor_Edit_EditorBody_ifr') 18 # webdriver.switch_to.frame(iframe) 19 # webdriver.find_element_by_id('tinymce').send_keys(editbody) # 富文本区输入内容 20 # webdriver.switch_to.default_content() 21 # 第二种,通过js编辑富文本内容 22 js = 'document.getElementById("Editor_Edit_EditorBody_ifr").contentWindow.document.body.innerHTML="%s"'%editbody 23 webdriver.execute_script(js) 24 webdriver.find_element_by_id('Editor_Edit_lkbPost').click() #发布