python之Selenium

python之Selenium打开浏览器

函数及属性

driver = webdriver.Chrome(chromeDriver)

返回当前会话中的cookies

1
driver.get_cookies()

根据cookies name查找

1
driver.get_cookie(cookiename)

截取当前页面

1
get_screenshot_as_file(filename)

如:get_screenshot_as_file(“D:\nm.bmp”)

获取当前窗口的坐标

1
driver.get_window_position()

获取当前窗口的长和宽

1
driver.get_window_size()

获取当前页面的URL

1
driver.current_url

获取当前页面的title

1
driver.title

获取元素的坐标

先获取到该元素,然后调用location属性

1
 driver.find_element_by_xpath("//*[@id='tablechart']/tbody/tr[14]/td[9]").location

获取css的属性值

value_of_css_property(css_name)

1
driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")

获取元素的属性值

get_attribute(element_name)

1
driver.find_element_by_id("sellaiyuan").get_attribute("sellaiyuan")

判断元素是否被选中

is_selected()

1
driver.find_element_by_id("form1").is_selected()

返回元素的大小

size

1
2
driver.find_element_by_id("iptPassword").size
size``返回值:{'width': 250, 'height': 30}

判断元素是否显示:

is_displayed()

1
driver.find_element_by_id("iptPassword").is_displayed()

判断元素是否被使用方法

is_enabled()

1
driver.find_element_by_id("iptPassword").is_enabled()

获取元素的文本值方法

text

1
driver.find_element_by_id("iptUsername").text

元素赋值方法

send_keys(*values)

1
2
driver.find_element_by_id("iptUsername").send_keys('admin')
PS:``注意如果是中文需要增加转义符u,eg.``driver.find_element_by_id("iptUsername").send_keys(u'青春')

返回元素的标签名称

tag_name

1
driver.find_element_by_id("iptUsername").tag_name

删除浏览器所有的cookies

delete_all_cookies()

1
driver.delete_all_cookies()

删除指定的cookie

delete_cookie(name)

1
driver.delete_cookie("my_cookie_name")

关闭浏览器方法

close()

1
driver.close()

关闭浏览器并且退出驱动程序

quit()

1
driver.quit()

返回上一页

back()

1
driver.back()

设置等待超时的方法

implicitly_wait(wait_time)

1
driver.implicitly_wait(30)

浏览器窗口最大化

maximize_window()

1
driver.maximize_window()

查看浏览器的名字

name

1
drvier.name

实例代码

打开网址

1
2
3
4
5
6
from selenium import webdriver

# chromeDriver = r".\chromedriver_win32\chromedriver.exe"
# browser = webdriver.Chrome(chromeDriver)
browser = webdriver.Chrome()
browser.get('http://www.baidu.com/')

如果程序执行错误,浏览器没有打开,那么应该是没有装 Chrome 浏览器或者 Chrome 驱动没有配置在环境变量里。下载驱动,然后将驱动文件路径配置在环境变量即可。

浏览器驱动下载

比如Mac OS,就把下载好的文件放在 /usr/bin 目录下就可以了。

模拟提交

下面的代码实现了模拟提交提交搜索的功能,首先等页面加载完成,然后输入到搜索框文本,点击提交。

1
2
3
4
5
6
7
8
9
10
11
12
13
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
print(driver.page_source)
assert "No results found." not in driver.page_source
driver.close()

参考

Python爬虫利器五之Selenium的用法

selenium2中关于Python的常用函数

Selenium-Python中文文档