Splinter常用API介绍(转)
# Example from splinter import Browser with Browser() as browser: # Visit URL url = "http://www.google.com" browser.visit(url) browser.fill('q', 'splinter - python acceptance testing for web applications') # Find and click the 'search' button button = browser.find_by_name('btnG') # Interact with elements button.click() if browser.is_text_present('splinter.readthedocs.io'): print("Yes, the official website was found!") else: print("No, it wasn't found... We need to improve our SEO techniques") # browser type browser = Browser('chrome') browser = Browser('firefox') browser = Browser('zope.testbrowser') # Managing Windows browser.windows # all open windows browser.windows[0] # the first window browser.windows["window_name"] # the window_name window browser.windows.current # the current window browser.windows.current = browser.windows[3] # set current window to window 3 # splinter api不提供但是可以通过其他来搞定的,比如通过driver来设置window的大小。 browser.driver.set_window_size(1600, 1000) window = browser.windows[0] window.is_current # boolean - whether window is current active window window.is_current = True # set this window to be current window window.next # the next window window.prev # the previous window window.close() # close this window window.close_others() # close all windows except this one # Reload/back/forward a page browser.reload() browser.back() browser.forward() # get page tile /page content /url browser.title browser.html browser.url # change Browser User-Agent b = Browser(user_agent="Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)") # Finding elements,returns a list with the found elements browser.find_by_css('h1') browser.find_by_xpath('//h1') browser.find_by_tag('h1') browser.find_by_name('name') browser.find_by_text('Hello World!') browser.find_by_id('firstheader') browser.find_by_value('query') # get element first_found = browser.find_by_name('name').first last_found = browser.find_by_name('name').last second_found = browser.find_by_name('name')[1] # Get value of an element browser.find_by_css('h1').first.value # Clicking links,return the first link browser.click_link_by_href('http://www.the_site.com/my_link') browser.click_link_by_partial_href('my_link') browser.click_link_by_text('my link') browser.click_link_by_partial_text('part of link text') browser.click_link_by_id('link_id') # element is visible or invisible browser.find_by_css('h1').first.visible # Verifying if element has a className browser.find_by_css('.content').first.has_class('content') # click button browser.find_by_name('send').first.click() browser.find_link_by_text('my link').first.click() # Mouse browser.find_by_tag('h1').mouse_over() browser.find_by_tag('h1').mouse_out() browser.find_by_tag('h1').click() browser.find_by_tag('h1').double_click() browser.find_by_tag('h1').right_click() # Mouse drag and drop draggable = browser.find_by_tag('h1') target = browser.find_by_css('.container') draggable.drag_and_drop(target) # Interacting with forms browser.fill('query', 'my name') browser.attach_file('file', '/path/to/file/somefile.jpg') browser.choose('some-radio', 'radio-value') browser.check('some-check') browser.uncheck('some-check') browser.select('uf', 'rj') # screenshot browser.driver.save_screenshot('your_screenshot.png') # 看不太懂 # trigger JavaScript events, like KeyDown or KeyUp, you can use the type method. browser.type('type', 'typing text') ''' If you pass the argument slowly=True to the type method you can interact with the page on every key pressed. Useful for ''' # testing field's auto completion (the browser will wait until next iteration to type the subsequent key). for key in browser.type('type', 'typing slowly', slowly=True): pass # make some assertion here with the key object :) # You can also use type and fill methods in an element: browser.find_by_name('name').type('Steve Jobs', slowly=True) browser.find_by_css('.city').fill('San Francisco') # Dealing with HTTP status code and exceptions browser.visit('http://cobrateam.info') browser.status_code.is_success() # True browser.status_code == 200 # True browser.status_code.code # # try: # browser.visit('http://cobrateam.info/i-want-cookies') # except HttpResponseError, e: # print "Oops, I failed with the status code %s and reason %s" % (e.status_code, e.reason) # test # Cookies manipulation browser.cookies.add({'whatever': 'and ever'}) # add a cookie browser.cookies.all() # retrieve all cookies browser.cookies.delete('mwahahahaha') # deletes the cookie 'mwahahahaha' browser.cookies.delete('whatever', 'wherever') # deletes two cookies browser.cookies.delete() # deletes all cookies # Frames, alerts and prompts # Using iframes,You can use the get_iframe method and the with statement to interact with iframes. You can pass the # iframe's name, id, or index to get_ifram with browser.get_iframe('iframemodal') as iframe: iframe.do_stuff() # Chrome support for alerts and prompts is new in Splinter 0.4.Only webdrivers (Firefox and Chrome) has support for # alerts and prompts. alert = browser.get_alert() alert.text alert.accept() alert.dismiss() prompt = browser.get_alert() prompt.text prompt.fill_with('text') prompt.accept() prompt.dismiss() # use the with statement to interacte with both alerts and prompts with browser.get_alert() as alert: alert.do_stuff() # Executing javascript browser.execute_script("$('body').empty()") browser.evaluate_script("4+4") == 8 # Matchers browser = Browser() browser.visit('https://splinter.readthedocs.io/') browser.is_text_present('splinter') # True browser.is_text_present('splinter', wait_time=10) # True, using wait_time browser.is_not_present('text not present') # True browser.is_element_present_by_css('h1') browser.is_element_present_by_xpath('//h1') browser.is_element_present_by_tag('h1') browser.is_element_present_by_name('name') browser.is_element_present_by_text('Hello World!') browser.is_element_not_present_by_id('firstheader') browser.is_element_not_present_by_value('query') browser.is_element_present_by_value('query', wait_time=10) #scroll 滑动屏幕 browser.evaluate_script('window.scrollTo(0,0)') 后期后整理更多的API
Splinter常用API介绍(转)的更多相关文章
- 小程序常用API介绍
小程序常用API接口 wx.request https网络请求 wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 method:"GET&qu ...
- appium 常用api介绍(2)
前言:接着上一篇继续讲常用的一些api 参考博文:http://blog.csdn.net/bear_w/article/details/50330565 1.send_keys send_keys( ...
- appium 常用api介绍(1)
前言:android手机大家都很熟悉,操作有按键.触摸.点击.滑动等,各种操作方法可以通过api的方法来实现. 参考博文:http://blog.csdn.net/bear_w/article/det ...
- java===字符串常用API介绍(转)
本文转自:http://blog.csdn.net/crazy_kid_hnf/article/details/55102861 字符串基本操作 1.substring(from,end)(含头不含尾 ...
- java-org.dom4j常用api介绍
//导入必要的包 import org.dom4j.Document;//Document文档类 import org.dom4j.Element//元素节点类 import org.dom4j.QN ...
- java中FILE类常用API介绍
- selenium2常用API介绍
我们模拟web操作都是基于元素来操作的,我们首先要先确定元素,然后这个元素下对应的方法就可以看WebElement的方法. 1.点击操作 WebElement button=driver.findEl ...
- APPIUM 常用API介绍(3)
1.send_keys send_keys(self, *value): Simulates typing into the element[在元素中模拟输入(开启appium自带的输入法并配置了ap ...
- 四. 几个Promise常用API的介绍与使用
四. 几个常用API的介绍与使用 1. Promise构造函数:Promise(excutor){} excutor函数:同步执行 (resolve, reject) => {} resolve ...
随机推荐
- Selenium Grid和IE /Firefox各种填坑
使用selenium grid的步骤 1.确保hub和node都安装并且配置好了java jdk. 2.在hub上运行以下命令. java -jar C:\Software\selenium\sele ...
- Python下划线简介
Python中下划线的5种含义 分享一篇文章:The Meaning of Underscores in Python. 本文介绍了Python中单下划线和双下划线("dunder" ...
- 关于感受野 (Receptive field) 你该知道的事
Receptive field 可中译为“感受野”,是卷积神经网络中非常重要的概念之一. 我个人最早看到这个词的描述是在 2012 年 Krizhevsky 的 paper 中就有提到过,当时是各种不 ...
- 移动端rem适配
(function(_D) { var _self = {}; _self.resizeEvt = 'orientationchange' in window ? 'orientationchange ...
- npm 离线安装依赖
现实场景:一台自己的电脑可以连外网,一台开发机不能连网,开发机需要安装node_modules 依赖解决办法: npm 安装依赖分为两种,一是 -g 这种是安装在全局环境的,只有在电脑中 ...
- Gmapping笔记
2D-slam 激光slam: 开源代码的比较HectorSLAM Gmapping KartoSLAM CoreSLAM LagoSLAM 作者:kint_zhao 原文:https://blog. ...
- linux服务配置
1,开机初始化的配置 iptables -F 清空防火墙 /etc/init.d/iptables stop #关闭iptables setenforce 0 #暂停selinux #编译安装py ...
- VBA XML信息提取
Option Explicit Sub 读取XML节点() '后期绑定 'Dim xdoc As Object 'Set xdoc = CreateObject("MSXML2.DOMDoc ...
- linux 学习之路:ls命令使用
1.命令格式: Ls 显示指定工作目录下的目录内容 语法:ls [-alrtAFR] [name...] 2.命令参数: 3.命令功能: 显示列出目前工作目录所含之文件及子目录 4.命令范例: 列出根 ...
- 微信小程序实战[01]
接触微信小程序也有一段时间了,以天气预报练一下手. 主要实现了以下功能: (1) 首页图标式菜单,便于以后扩展功能 (2)首页顶部滚动消息 (3)页面右上角三点菜单转发功能,便于小程序的传播 (4)天 ...