结合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链式调用的主要内容,如果未能解决你的问题,请参考以下文章

一篇文章玩转C语言函数语法,领悟函数的用法效率

python中的链式调用父初始化器[重复]

不敢想!不敢想!我用Python自动玩转2048游戏

不敢想!不敢想!我用Python自动玩转2048游戏

Python+Selenium笔记(十五)调用JS

Python爬虫学习--用Python结合Selenium实现 明日之子节目直播时为自己喜欢的选手自动点赞拉票!!!