
正文
ipt函数python ipt函数指令
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
RobotFramework 自动化框架环境搭建及使用
一、为什么要做自动化?
前提:主流程稳定,周期长,脚本可重复利用。
1.节省人力资源
2.提高效率
3.面试需要
二、什么是RobotFramework:
基于Python的关键字驱动的自动化框架。
1. 基于Python:就是由python语言开发的这个框架。
2.关键字驱动:关键字驱动测试又称为表格驱动测试,是自动化测试的一种方法,是数据测试的一种改进方法。关键字驱动主要包括测试步骤、测试步骤中的对象,测试对象执行的动作,测试对象需要的数据
3.自动化框架?:是应用于自动化测试,框架提供可重用的基础自动化测试平台,提供自动化测试执行和管理功能的组织架构。
三、pip的常用方法:
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
以下在win10_x64 cmd中操作:
安装:pip install 包名
eg:pip install robotframework
安装指定版本:pip install 包名==版本号
eg:pip install robotframework==1.7.4.1
升级指定包:pip install --upgrade 包名
eg:pip install --upgrade robotframework
卸载:pip uninstall 包名
eg:pip uninstall robotframework
搜索安装包:pip search 包名
eg:pip search robotframework
查看当前电脑上已经安装的包:pip list
查看当前电脑上可以升级的包:pip list -o
四、rf的安装:
安装RF自动化框架:pip install robotframework
安装RF自动化框架IDE:pip install robotframework-ride
安装wxpython(ride依赖wxpython):pip install wxpython
ps :实际上新版本pip在安装ride时会自动安装所需依赖,也就是wxpython
版本信息:Win10 x64 + Python 3.7.7 + rf 3.1.2 + ride 1.7.4.1 + wxpython 4.0.7.post2
ps :ride 1.x版本不支持Python 3.8及以上,ride 2.x(开发中)支持Python 3.8
rf日志中文乱码解决方法:修改文件 python安装目录下 Libsite-packagesrobotidecontrib estrunner estrunnerplugin.py 第 565 行,将 SYSTEM 改成 OUTPUT ,重启ride工具。
五、元素定位:
id :以百度搜索输入框为例
在RF中写法: id=kw
name :以百度搜索输入框为例
在RF中写法: name=wd
xpath :Xml Path Language
1. 绝对路径:从html根部逐级(从上至下)查找
/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input
在RF中写法:xpath=/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input
2.相对路径:根据节点的上下文进行查找
eg://p/form/span/input 这里是在html中找一个p,p里面包含一个form,form包含一个span,span包含一个input,找有这样一个四层的关系的input标签,要注意如果html中有多个符合这种层级关系的input,会默认选第一个,也就是说这种方式未必是完全准确的。
3. xpath相对定位我们还可以根据元素的属性来查找:
eg://p/form/span[1]/input[@type] 这里是找符合这样一个层级关系并且有'type'这个属性的input标签
在RF中写法:xpath=//p/form/span[1]/input[@type]
eg://p/form/span[1]/input[@type='submit'] 这里是找符合这样一个层级关系并且'type'这个属性的值为'submit'的input标签
在RF中写法:xpath=//p/form/span[1]/input[@type='submit']
eg://p/form/span[1]/input[contains(@type,'sub')] 这里是找符合这样一个层级关系并且'type'这个属性的值包含'sub'的input标签
在RF中写法:xpath=//p/form/span[1]/input[contains(@type,'sub')]
以上是根据属性,如果是下面这样的a标签,我们还可以根据链接文字来进行定位
点我
eg://a[contains(text(),'点我')] 这样就是找所有a标签并且文字为'点我'的元素了
在RF中写法:xpath=//a[contains(text(),'点我')]
小技巧:
在 Chrome-F12-Console 中根据Xpath寻找元素:使用 $x (""),引号中填写xpath路径,如$x("/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input")
css:
id: 以百度搜索输入框为例
在RF中写法: css=#kw
class: 以百度搜索输入框为例
在RF中写法: css=.s_ipt
css根据属性定位 :
[id='kw'] 表示查找id值为'kw'的元素
[name^='w'] 表示查找name值为'k'开头的元素
[class$='ipt'] 表示查找class值为'ipt'结尾的元素
[autocomplete*='f'] 表示查找autocomplete值中包含'f'的元素
[id='kw'] [name^='w'] 表示查找id值为'kw'并且name值为'k'开头的元素
在RF中写法:css=[id='kw'] [name^='w']、css=[class$='ipt']、
css=[maxlength='255']、css=[autocomplete='off']
ps:id和class也是属性,只是在css中针对id和class多了一种简单的写法,如上面的
css=#kw、css=.s_ipt
css根据标签定位:
input
表示查找当前页面所有input标签
在RF中写法:css=input
a,input
表示查找当前页面所有a标签和input标签
在RF中写法:css=a,input
span input
表示查找span标签下的所有input标签,哪怕是span下下级的input
在RF中写法:css=span input
spaninput
表示查找父元素为span标签的所有input标签,注意和span input的区别
在RF中写法:css=spaninput
span+input
表示查找紧挨在span元素后的第一个input元素
在RF中写法:css=span+input
span~input
表示查找紧挨在span元素后的所有input元素
在RF中写法:css=span~input
ps :其实大家都知道,因为页面上只依靠标签定位的话重复的可能性太大了,所有我们可以采用 标签 + 属性 的方式来进行定位
例如 spaninput[id='kw'][name^='w'] 意思是查找所有父标签为span的input标签,并且该标签中有属性id的值为kw且属性name的值为w开头
在RF中写法:css=spaninput[id='kw'][name^='w']
小技巧:
在 Chrome-F12-Console 中根据css寻找单个元素:
使用 $ (""),引号中填写css选择器,如$("spaninput[id='kw'][name^='w']")
在 Chrome-F12-Console 中根据css寻找多个元素:
使用 $ (""),引号中填写css选择器,如$("spaninput[id='kw'][name^='w']")
相关问答
Q1: 用python自己写的代码,但是就是不完美,进入有星号的循环输入什么数字,就出不来了。是什么问题呀,大神
整体逻辑
重试次数 = 0
while 重试次数 3:
ipt = input("xxxx")
if "*" in ipt:
....
continue
if 密码正确
....
break
else:
重试次数+=1
if 循环次数 = 3:
登录失败
Q2: python list 题目
1
ipt = input("")
print(sum(map(lambda c: int(c) if c.isnumeric() else {'J': 11, 'Q': 12, 'K': 13, 'A': 1}[c.upper()], ipt.split())))
2
ipt = input("")
print(*sorted(ipt.split(), key=lambda x: int(x), reverse=True)[: 3], sep=", ")
3
ipt = input("")
t = [int(c) for c in ipt.split()]
print(sum(t) - min(t) - max(t))
4
ipt = input("")
t = {ipt.split().count(c): c for c in ipt.split()}
print("{} {}".format(t[max(t)], max(t)))
Q3: 用python 语言 从键盘输入两点坐标(x1,y1)并计算距离
欧式距离python实现代码:
import numpy as np
x=np.random.random(10)
y=np.random.random(10)
#方法一:根据公式求解
d1=np.sqrt(np.sum(np.square(x-y)))
#方法二:根据scipy库求解
from scipy.spatial.distance import pdist
X=np.vstack([x,y])
d2=pdist(X)
曼哈顿距离python实现:
import numpy as np
x=np.random.random(10)
y=np.random.random(10)
#方法一:根据公式求解
d1=np.sum(np.abs(x-y))
#方法二:根据scipy库求解
from scipy.spatial.distance import pdist
X=np.vstack([x,y])
d2=pdist(X,'cityblock')
程序运行结果:
扩展资料:
C语言实现:
#include "pch.h"
#define _CRT_SECURE_NO_WARNINGS
#includestdio.h
#includemath.h
void main()
{
float x1, x2, y1, y2;
printf("请输入一组数据:");
while (~scanf("%f%f%f%f", x1, y1, x2, y2))//开始读取输入的数,知道文件结束。
{
printf("两点间的距离为:%.2f\n", sqrt((x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2)));
printf("请输入一组数据:");
}
}
Q4: python运行出错。
456.py
里的代码是
python
2.7.3
(default,
apr
10
2012,
23:31:26)
[msc
v.1500
32
bit
(intel)]
on
win32
type
"copyright",
"credits"
or
"license()"
for
more
information.
"hello"
那肯定报错啊。
python
2.7.3
(default,
apr
10
2012,
23:31:26)
[msc
v.1500
32
bit
(intel)]
on
win32
type
"copyright",
"credits"
or
"license()"
for
more
information.
这几行字都不是python的代码是控制台显示的提示文字。
你把456.py里的内容改为只有print
"hello"这句(注意前面的也不能要)。在运行应该就没问题了,会正常输出hello这个单词。
从这个问题上看,你应该是刚接触编程的新手的,在多看看教程,在仔细理解一下基础知识。
希望对你有所帮助~
ipt函数python的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于ipt函数指令、ipt函数python的信息别忘了在本站进行查找喔。







