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()   #发布

 

 

 




posted @ 2019-04-19 10:58  yanrufei  阅读(416)  评论(0编辑  收藏  举报