结合selenium玩转python链式调用
Posted 七月的小尾巴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结合selenium玩转python链式调用相关的知识,希望对你有一定的参考价值。
Python 中的链式调用
在 Python 中实现一个简单的链式调用就是通过构建类方法并返回对象自身或返回归属类(@classmethod)
class Person(object):
def name(self, name):
self.name = name
return self
def age(self, age):
self.age = age
return self
def show(self):
print("My name is", self.name, "and I am", self.age, "years old.")
p = Person()
p.name("wangwei").age(15).show()
在这里我们创建一个Person类,需要传递一个name 字符串参数进行实例对象的创建;当中这个类里有三个方法,分别是name、age以及show。
由于每次返回的是self 自身,那么我们就可以源源不断地调用对象归属类中的方法,结果如下:
My name is wangwei and I am 15 years old.
Process finished with exit code 0
那么我们熟悉了python的链式调用,下面我们来举个简单的selenium栗子,来看看具体是怎么玩的~
import time
from selenium import webdriver
class pys(object):
def __init__(self):
self.driver = webdriver.Chrome()
def sleep(self):
time.sleep(3)
print(3)
return self
def findele(self, xp):
el = self.driver.find_element_by_xpath(xp)
return el
def clickele(self, xp):
self.findele(xp).click()
return self
def open(self, url):
self.driver.get(url)
return self
def inputele(self, xp, text):
self.findele(xp).send_keys(text)
return self
if __name__ == '__main__':
p = pys()
p.sleep().open("https://cn.bing.com/").sleep()
p.inputele('//*[@id="sb_form_q"]', '123').sleep().clickele("//div[@data-sbtip='搜索网页']")
哈哈哈哈,这样的玩法,你学废了吗?
以上是关于结合selenium玩转python链式调用的主要内容,如果未能解决你的问题,请参考以下文章