Python爬虫工具 Selenium webdriver -自动化测试工具

来源:互联网 发布:塞尔维亚知乎 编辑:程序博客网 时间:2024/05/16 16:01

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏。

from selenuum import webdriver<!--创建url-->url = "http://www.baidu.com"<!--创建浏览器驱动,这里以Chrome为例-->driver = webdriver.Chrome()<!--发起请求-->driver.get(url)<!--保存快照-->driver.save_screenshot('baidu.png')<!--8种标签定位方法,获取输入框-->-----获取单个标签,结果为标签对象------find_element_by_XXXX <!--1 通过id获取标签-->el = driver.find_element_by_id('kw')<!--2 通过css选择器获取标签--><!--同时满足多种选择器---input[name="username"][type="text"]-->el = driver.find_element_by_css_selector('#kw')  # 括号里可以为class,id属性 .kw #kw<!--3 通过class属性获取标签-->el = driver.find_element_by_class_name('s_ipt')<!--4 通过name属性获取标签-->el = driver.find_element_by_name('wd')<!--5 通过xpath获取标签-->el = driver.find_element_by_xpath('//*[@id="u1"]/a[2]')<!--6 匹配标签名-->el = driver.find_element_by_tag_name('input')<!--7 主要针对a标签,匹配a标签里的文字-->el = driver.find_element_by_link_text('abccd')<!--8 升级版:主要针对a标签,模糊匹配a标签里的文字-->el = driver.find_element_by_partial_link_text("cc")-----获取多个标签,结果为标签对象列表------find_elements_by_XXXX <!--查看标签属性-->el.get_attribute("type")<!--获取标签内文本-->el.text<!--查看所有标签列表-->window_list = driver.window_handles<!--切换列表-->driver.switch_to.window(window_list[1])<!--模拟输入框输入-->el.send_keys("哈哈哈")<!--模拟点击-->el.click()<!--获取响应后的数据--><!--源码--二进制-->driver.page_source<!--cookies-->driver.get_cookies()<!--标题和当前url-->driver.titledriver.current_url<!--响应获取数据后要关闭,释放内存-->driver.close()driver.quit()

如果一个页面中有框架,需要先进入,再在框架内进行定位获取标签

el_iframe = driver.find_element_by_xpath('//*[@id="login_frame"]')<!--进入框架-->driver.switch_to.frame(el_iframe)