selenium+python学习小记
入门
首先安装python(IDE推荐pycharm)和selenum,下载Chromedriver放在Chrome的安装目录下,具体的安装下载可以百度教程。
一切准备就绪之后来体验一下打开浏览器
from selenium import webdriver # 导入包
browser = webdriver.Chrome() #指定浏览器
browser.get('https://www.baidu.com/') #进入百度
打开浏览器进入百度,接下来使用百度的功能‘百度一下’
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
assert "https://www.baidu.com/" in browser.current_url
elem = browser.find_element_by_id("kw")
elem.send_keys("python")
browser.find_element_by_id('su').click()
print browser.page_source
上面知识简单的打开搜索操作,接下来写一个测试用例
from selenium import webdriver
import unittest
import time
import sys
reload(sys)
sys.setdefaultencoding('utf8')
class PythonOrgSearch(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Chrome()
def test_search(
self):
browser = self.browser
browser.maximize_window()
browser.get("http://www.baidu.com")
assert ("百度一下,你就知道" == browser.title)
elem = browser.find_element_by_name("wd")
elem.send_keys("selenium")
browser.find_element_by_id("su").click()
def tearDown1(self):
print ('关闭浏览器')
self.browser.close()
if __name__ == "__main__":
unittest.main()
页面操作
获取页面元素
获取页面元素方法有很多种,如下:
find_element_by_id()#通过元素id定位元素
find_element_by_name()#通过元素name定位元素
find_element_by_xpath()#通过xpath定位元素(比较厉害)
find_element_by_link_text()#通过连接定位元素
find_element_by_partial_link_text()
find_element_by_tag_name()#通过tag_name定位元素
find_element_by_class_name()#通过class定位元素
find_element_by_css_selector()#通过css定位元素
很多时候,当刷新页面获取页面元素失败,这里需要添加一个智能等待,等到页面加载出该元素再进行获取
from selenium.webdriver.support.ui import WebDriverWait
WebDriverWait(browser,10).until(lambda browser: browser.find_element_by_id('wd'))
页面元素获取成功后,接下来就是对元素进行操作,常见的操作方法有:
- clear 清除元素的内容
- send_keys 模拟按键输入
- click 点击元素
- submit 提交表单
一个简单的Chrome登录163邮箱的例子:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# Login 163 email
browser = webdriver.Chrome()
browser.get("http://mail.163.com/")
elem_user = browser.find_element_by_name("username")
elem_user.clear
elem_user.send_keys("*********")
elem_pwd = browser.find_element_by_name("password")
elem_pwd.clear
elem_pwd.send_keys("******")
elem_pwd.send_keys(Keys.RETURN) # 也可以获取登录按钮,点击进行登录
time.sleep(5)
browser.close()
browser.quit()
未完。。。。