自动化selenium,执行js,以及触屏操作,和类的解释
自动化时,js语法的执行
# 注意写js要有;里面的写法,就是js语法怎么写都行,就是找元素做操作, 还有 添加id或其他属性时,直接写,别加“”或者单引号,要不不认识报错
# js1="document.querySelector('#js-datemodule > div.f-b-item.f-b-arrow > div').innerHTML='<input></input>';"
js = "document.getElementsByClassName('f-b-wrap')[2].innerHTML='<input id=input1></input>';"
js1="document.getElementsByClassName('page')[0].lastElementChild.innerHTML+='<button class="js-submit-btn" type=button id=submit1>提交</button>';"
self.js(js)
self.sleep(1)
self.type(self.修改后输入框,"2020-07-09")
怎么判断,是触屏的点击
# # 触摸点击 怎么判断,是否为触摸点击,而不是click点击?运行之后,用运行的浏览器,去点击,看看是否能点动,不动就试试触摸点击
# #尝试使用js点击和鼠标点击都失败了,只能使用鼠标点击
# #TouchActions要传参driver,但是要传一个self.drver应该是因为集成的原因
TouchActions(self.driver).tap(self.find_element(self.日期选择框_确定)).perform()
python的类
类方法 ,不管初始化,还是其他,都自带一个self
![](https://img2020.cnblogs.com/blog/1033153/202006/1033153-20200623164255432-523571642.png)
其中一句,self 代表的是类的实例,所以写自动化的时候才能,写成self.open ,等, 因为 open是 父类定义的一个方法,子类去调用,self就是类的实例,所以 self.方法名,就相当于 java new了一个类的对象,对象点 方法去调用
问题,孙类,继承 父类, 父类,继承 爷爷, 这个self. 指的是谁? 孙类,可用self.方法,调用 父类 ,和 爷爷的? 父类,调爷爷的?
那 初始化的,怎么算,都有自己的初始化
下面这个图,就是写自动化时,子类调用父类的初始化
运用的典型的写法
父类名称.__init__(self,参数1,参数2,...)
如果变量写在,类下面,不需要写self, 所有这个类的实例都能调用
子类集成父类时,子类直接调用父类的,初始化方法,_init_ 子类自己重写的话,就使用子类的,不用父类的
![](https://img2020.cnblogs.com/blog/1033153/202006/1033153-20200623164329737-1883243618.png)
2、在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别在于类中调用普通函数时并不需要带上 self 参数
这也就是为啥我写自动化时,这个patientname直接写方法名,就行,只要把方法引进来就行。输入类中调用普通函数时,不需要写self
![](https://img2020.cnblogs.com/blog/1033153/202006/1033153-20200623164440395-1815194587.png)
集成多个类
class A: # 定义类 A ..... class B: # 定义类 B ..... class C(A, B): # 继承类 A 和 B
![](https://img2020.cnblogs.com/blog/1033153/202006/1033153-20200623171047483-57648409.png)