Splinter入门(七) Interacting with elements 元素交互(二)
Splinter入门(七) Interacting with elements 元素交互(二)
API说明
Splinter提供了系列操作表单组件的API。
函数 | 说明 | 注释 |
---|---|---|
browser.fill('query', 'my name')
|
填充name 为 query 的文本框,填充内容为my name
|
参数1为输入框的name 属性值,参数2为填充的内容,为字符串
|
browser.attach_file('file', 'path')
|
给name 为file 的文件组件上传文件
|
参数1为文件组件的name 属性值,参数2位文件路径,注意:文件路径不能是相对路径,只能是绝对路径
|
browser.choose('some-radio', 'radio-value')
|
选择name 属性为some-radio且 值为radio-value 的单选框
|
参数1为radio 的name 属性值,参数2为vlue 属性值
|
browser.check('some-check')
|
选中name 属性为some-check 的复选框
|
参数1为复选框的name 属性值
|
browser.uncheck('some-check')
|
取消选中name 属性为some-check 的复选框
|
参数1为复选框的name 属性值
|
browser.select('uf', 'rj')
|
选中name为uf 的下拉列表下 value 为rj 的下拉项
|
参数1为下拉列表select 的name 属性值,参数2为下拉列表项option 的value 属性值
|
示例
HTML文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>表单应用</title>
</head><body><h1>表单应用</h1><div><form>name:<input id = "nameId" type="text" name="firstname"><br>Sex:<input id="sexId" type="radio" name="sex" value="male">male <input id="sexId" type="radio" name="sex" value="female">female<br>Vehicle:<input id="vehicleId" type="checkbox" name="vehicle" value="Bike">I have a bike<br>Select:<select id="seclID" name="Select"><option value ="volvovalue" name='volvo'>Volvo</option><option value ="saabvalue" name='saab'>Saab</option><option value="opelvalue" name='opel'>Opel</option><option value="audivalue" name='audi'>Audi</option></select>file: <input type="file" id="inName" name = 'file' mutiple="multiple"></form></div>
</body>
</html>
Python脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : cuntou0906
# @File : 03.py
# @Time : 2021/7/12 22:38from splinter import Browser
from time import sleepbrowser = Browser('chrome') # 创建浏览器实例
browser.visit('file:///E:/My_code/Python_code/PythonWebCode/SplinterCode/04_InteractWithElement/html/index2.html') # 访问baidu
browser.fill('firstname', 'cuntou0906') # 文本域填充
sleep(1)
browser.choose('sex', 'female') # 单选框
sleep(1)
browser.check('vehicle') # 选中复选框
sleep(1)
browser.uncheck('vehicle') # 取消选中复选框
sleep(1)
browser.select('Select', 'saabvalue') # 下拉列表选中
sleep(1) # 文件上传
browser.attach_file('file', 'E:/My_code/Python_code/PythonWebCode/SplinterCode/04_InteractWithElement/html/index.html')
sleep(1)
browser.quit() # 关闭浏览器
执行结果
最后,说明一下,到底参数是填name
属性值还是value
属性值呢?以上面的下拉列表为例,如果browser.select(arg1,arg2)
的第二个参数arg2
也传入下拉列表option
的的name
属性值,则会报错,如:
browser.select('Select', 'saab') # 下拉列表选中
可以很清楚在报错中找到,我们传递进去的参数arg1和arg2分别传递给Xpath中select
的name
和option
的value
属性值,然后通过find_by_xpath
找到对应的组件。
Splinter入门(七) Interacting with elements 元素交互(二)相关推荐
- Splinter入门(三) Finding Elements 查找元素
Splinter入门(三) Finding Elements 查找元素 查找Elements Splinter提供了六种查找html元素的API,包括css, xpath, tag, name, i ...
- Splinter入门(四) Mouse interactions 鼠标交互
Splinter入门(四) Mouse interactions 鼠标交互 Notes:大多数鼠标交互目前只在Chrome驱动程序和Firefox 27.0.1上有效. 鼠标交互基本使用 Splin ...
- Splinter入门(六) links的API
Splinter入门(六) links的API (查找链接)Finding links 有时候,可能只关注含有连接links的元素,因此,在Splinter中,提供了links 命名空间,其下有多个 ...
- 网络编程懒人入门(七):深入浅出,全面理解HTTP协议
转自即时通讯网:http://www.52im.net/ 本文引用了自简书作者"涤生_Woo"的文章,内容有删减,感谢原作者的分享. 1.前言 HTTP(全称超文本传输协议,英文全 ...
- 介绍Kadence Elements元素模板:按您的方式设计网站
随着 Kadence Pro 1.0.4 和 Kadence Blocks Pro 1.5.8 的发布,Kadence 团队很高兴地宣布推出最强大的新方法,帮助网站所有者使用 Kadence Elem ...
- Splinter入门(十一) Screenshot 截图
Splinter入门(十一) Screenshot 截图 Splinter支持对网页截图,对元素截图,以及保存html文件.API传递的路径参数均需使用绝对路径. Take screenshot 网 ...
- CSS入门七、CSS3新特性
零.文章目录 CSS入门七.CSS3新特性 1.CSS3 的现状 新增的CSS3特性有兼容性问题,ie9+才支持 移动端支持优于 PC 端 不断改进中 应用相对广泛 2.CSS3 新增选择器 CSS3 ...
- Splinter入门(二) Browser对象
Splinter入门(二) Browser对象 Browser即是Splinter的浏览器对象,对splinter的操作,需要创建Browser对象,正如你自个访问网页,首先也是需要打开浏览器. 创 ...
- Splinter入门(十二)Executing javascript(执行JavaScript)
Splinter入门(十二)Executing javascript(执行JavaScript) Splinter支持调用JavaScript脚本,例如: <!DOCTYPE html> ...
最新文章
- java 生成objectid_【Java】唯一ID的几种生成方案
- 通过python实现linux切换用户_Python操作远程服务器切换到root用户
- Java修炼之道--集合框架
- 【LeetCode】【字符串】题号:*58. 最后一个单词的长度
- java课程设计模拟画图_课程设计java画板模拟画图工具
- 数据算法_数据结构和常用算法
- 计算机制谱软件finale+2011应用教程,Finale2014(打谱软件)
- ZYNQ+LittleVGL
- 超酷的13个CSS有趣学习网站
- 服务器安卓系统安装教程,安卓系统安装到云服务器
- 知乎文章如何复制下来
- faster-rcnn 训练自己的数据集
- 华夏旅游CMS商城系统操作手册
- 39.(前端)欢迎页面的设置
- python之list与tuple
- jasper翻译_Jasper_Jasper是什么意思翻译
- java调用应用程序_java调用第三方应用程序
- Java八大数据类型
- 被was坑惨了,websphere下面报webapp.WebApp logError SRVE0293E: [Servlet Error]-[null]错误。
- [经验] 新版SkyIAR、Easy Image X在有些PE里不能运行的解决办法