入门指南

selenium 初学者指南
pypi-selenium
Selenium常用API
Selenium Web 自动化 - 测试框架(一)

窗口跳转
selectWindow

  1. getWindowHandles,判断是否是当前;

获取文本内容

1
2
element = driver.find_element_by_id("element_id")
element.text

填充表单

1
2
3
4
5
select = driver.find_element_by_tag_name("select")
allOptions = select.find_elements_by_tag_name("option")
for option in allOptions:
print "Value is: " + option.get_attribute("value")
option.click()

结合Select模块方法,方便选项迭代操作

1
2
3
4
5
# available since 2.12
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_tag_name("select"))
select.deselect_all()
select.select_by_visible_text("Edam")

提交

1
element.submit()

窗口跳转

有些web 应用有好几个窗口或者frames

1
driver.switch_to.window("windowName")

python+selenium3 玩转浏览器

环境搭建

安装Selenium

使用标准的python管理软件pip

1
pip install selenium

下载Selenium server

Mozilla GeckoDriver

常用操作

  1. 跳转 webdriver.get(“http://www.google.com“)

    元素定位

    1
    2
    3
    element = driver.find_element_by_id("passwd-id")
    element = driver.find_element_by_name("passwd")
    element = driver.find_element_by_xpath("//input[@id='passwd-id']")

你还可以通过文本定位链接,但是请注意,文本必须完全匹配!在WebDriver里使用XPATH也要特别注意,如果有多个元素满足查询,将只有第一个满足条件的被返回。如果没有发现任何元素,将会抛出NoSuchElementException异常。

输入文字

1
element.send_keys("some text")

通过Keys类模仿按箭头键:

1
element.send_keys(" and some", Keys.ARROW_DOWN)

清空输入框

1
element.send_keys(" and some", Keys.ARROW_DOWN)


弹出对话框
Selenium WebDriver内置了针对弹出窗口的处理方法。在打开一个弹出窗口后,可用以下方式访问alert:

1
Alert = driver.switch_to_alert()

这将返回当前打开的alert对象,通过这个对象,你可以接受,取消,读取它的内容或甚至在提示里输入内容。这个接口是适用于alert、confirm、prompt的。可参考API文档以获取更多信息。

导航:历史和定位
我们用get方法来跳转到页面。如你所见,WebDriver提供了很多更加细粒度、精确任务的接口,其中,导航就是一个很有用的任务。
为了跳转到一个页面,你可以使用get方法:

1
driver.get(“http://www.example.com”)

为了在浏览器历史里向前或向后移动:

1
2
Driver.forward()
Driver.back()


使用cookies

1
2
3
4
5
6
7
# Go to the correct domain
Driver.get(“http://www.example.com”)
# Now set the cookie. This one is valid for the entiredomain
Cookie = {“key”: “value”}
Driver.add_cookie(cookie)
# And now output all the available cookies for the currentURL
driver.get_cookies()