报错
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <i class="si icon-addpages"></i> is not clickable at point (34, 141). Other element would receive the click: <div id="topMask" style="position: fixed; top: 0px; left: 0px; bottom: 0px; right: 0px; z-index: 9999999999999;"></div>
(Session info: chrome=75.0.3770.142)
#方法一:
loc = driver.find_element_by_xpath("//div[@class='sidebar-btn yellow']/div/i")
driver.execute_script("arguments[0].click();", loc)
#方法二:
loc = driver.find_element_by_xpath("//div[@class='sidebar-btn yellow']/div/i")
webdriver.ActionChains(driver).move_to_element(loc).click(loc).perform()
参考资料:
https://blog.csdn.net/sonnyuu/article/details/96482795
https://www.cnblogs.com/yhleng/p/9299317.html
我查了一下,这个就是让你以开发者的模式启动浏览器,设置开发者模式启动,该模式下 webdriver 属性为正常值。
这种 BUG 太低级了
与其想这些有的没的,倒不如想想怎么提高当下的自己。
如果返回值是 list, 按照我的理解,可以比较长度,也可以对默认的第一条数据进行验证,也可以对总的数量值进行验证。我们接口的返回值就是动态的,我们的验证方法,包括长度,数量,特定数据的验证,是否包含 XXX 等断言方法。
样式很优雅啊
很不错了,你文字功底厉害,后期考虑出书吧,社区现在算是你的首发了。
这个是好事,必须要支持
推荐的工具,有的还没用过,学习了
点赞,这个在工作中能减轻很多工作量
挺好的,支持分享
期待啊
大爱啊,整理的真全
取手机屏幕的尺寸,按照比例去滑动,不要固定的坐标去走。
在滑动之前,我们需要获取屏幕的宽度和高度,如下:
Dimension dimension = driver.manage().window().getSize();
int width = dimension.getWidth();
int height = dimension.getHeight();
//上下滑动,坐标变化:startx,endx保持一致,改变 starty,endy。endy>starty 上滑,反之下滑
driver.swipe(width / 2, height * 3 / 4, width / 2, height / 4, 1000);
//左右滑动,坐标变化:starty,endy保持一致,改变 startx,endx。startx>endx 左滑,反之右滑
driver.swipe(width / 2, height * 3 / 4, width / 3, height * 3/ 4, 1000);
认领以下内容:
│ ├── element
│ │ ├── README.md
│ │ ├── actions
│ │ │ ├── README.md
│ │ │ ├── clear.md
│ │ │ ├── click.md
│ │ │ └── send-keys.md
深奥,确实没怎么看懂
我们的 excel 目前就是这样设计的
越努力,越焦虑
越努力,越幸运
cypress 对前端知识的要求还是有比较高的
大家端午节快乐!
外包经历,不是加分项,大部分是扣分项,但是误点谈不上,又不是犯罪记录。
Python 类实例方法
通常情况下,在类中定义的方法默认都是实例方法。
比如,下面的类中就用到了实例方法:
class CLanguage:
#类构造方法,也属于实例方法
def __init__(self):
self.name = "C语言中文网"
self.add = "http://c.biancheng.net"
# 下面定义了一个say实例方法
def say(self):
print("正在调用 say() 实例方法")
实例方法最大的特点就是,它最少也要包含一个 self 参数,用于绑定调用此方法的实例对象(Python 会自动完成绑定)。实例方法通常会用类对象直接调用,例如:
clang = CLanguage()
clang.say()
运行结果:
正在调用 say() 实例方法
当然,Python 也支持使用类名调用实例方法,但此方式需要手动给 self 参数传值。例如:
#类名调用实例方法,需手动给 self 参数传值
clang = CLanguage()
CLanguage.say(clang)
运行结果为:
正在调用 say() 实例方法
Python 类方法
Python 类方法和实例方法相似,它最少也要包含一个参数,只不过类方法中通常将其命名为 cls,Python 会自动将类本身绑定给 cls 参数(注意,绑定的不是类对象)。也就是说,我们在调用类方法时,无需显式为 cls 参数传参。
和 self 一样,cls 参数的命名也不是规定的(可以随意命名),只是 Python 程序员约定俗称的习惯而已。
和实例方法最大的不同在于,类方法需要使用@classmethod修饰符进行修饰,例如:
class CLanguage:
#类构造方法,也属于实例方法
def __init__(self):
self.name = "C语言中文网"
self.add = "http://c.biancheng.net"
#下面定义了一个类方法
@classmethod
def info(cls):
print("正在调用类方法",cls)
注意,如果没有 @classmethod,则 Python 解释器会将 fly() 方法认定为实例方法,而不是类方法。
类方法推荐使用类名直接调用,当然也可以使用实例对象来调用(不推荐)。例如,在上面 CLanguage 类的基础上,在该类外部添加如下代码:
#使用类名直接调用类方法
CLanguage.info()
#使用类对象调用类方法
clang = CLanguage()
clang.info()
运行结果为:
正在调用类方法
正在调用类方法
Python 类静态方法
静态方法,其实就是我们学过的函数,和函数唯一的区别是,静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中。
静态方法没有类似 self、cls 这样的特殊参数,因此 Python 解释器不会对它包含的参数做任何类或对象的绑定。也正因为如此,类的静态方法中无法调用任何类属性和类方法。
静态方法需要使用@staticmethod修饰,例如:
class CLanguage:
@staticmethod
def info(name,add):
print(name,add)
静态方法的调用,既可以使用类名,也可以使用类对象,例如:
#使用类名直接调用静态方法
CLanguage.info("C语言中文网","http://c.biancheng.net")
#使用类对象调用静态方法
clang = CLanguage()
clang.info("Python教程","http://c.biancheng.net/python")
运行结果为:
C语言中文网 http://c.biancheng.net
Python教程 http://c.biancheng.net/python
在实际编程中,几乎不会用到类方法和静态方法,因为我们完全可以使用函数代替它们实现想要的功能,但在一些特殊的场景中(例如工厂模式中),使用类方法和静态方法也是很不错的选择。
这个问题提的好
优秀的功能测试,确实在业务知识上面比技术测试更有优势,大部分企业对业务线的要求都比较高,因为业务线直接对接的是用户甚至是营收,是核心的东西。