精华内容
下载资源
问答
  • python selenium page 类封装
  • selenium_example Python PageObject模式实现
  • Python中的PageObject实现 项目是学习如何使用PageObject的第一个地方。 这个项目的灵感来自Ruby实现。 已知的问题 参见 贡献 分叉该项目。 试驾您的功能添加或错误修复。 确保使用行为场景描述新功能。 在需要...
  • simple Python Server Page 是一个简单的服务器端脚本工具,类似于 ASP/JSP/PHP,它使用 Python 作为脚本语言。 sPSP 允许您轻松创建动态内容和实施 Web 应用程序。
  • 主要介绍了PageFactory设计模式基于python实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 通过PAGE生成python GUI界面(用PAGE拖出需要的GUI界面)

    万次阅读 热门讨论 2018-07-15 22:39:33
    注:当前我的使用环境为windows10 64bit/python v3.6/PAGE v4.14/Tcl v8.6.7.0当前我定义一个目标,最终需要生成一个登录界面的GUI代码,如下:安装好各软件后,就可以运行PAGE来像VB一样所见即可得的拖出我们需要的...
    注:当前我的使用环境为windows10 64bit/python v3.6/PAGE v4.14/Tcl v8.6.7.0
    

    当前我定义一个目标,最终需要生成一个登录界面的GUI代码,如下:


    安装好各软件后,就可以运行PAGE来像VB一样所见即可得的拖出我们需要的GUI界面了。

    首先。运行PAGE,主界面如下:


    相信这种界面大家都很熟悉,就是可以直接拖放左侧的widget至中间的画板中,右则是各个widget的属性项设置,这个界面就可以所见即可得的拖放出目标定义中需要的python GUI界面了。以下就是我拖放出来的GUI画面:


    然后就要生成pythonGUI代码了:

    点主菜单\Gen_Python\Generate Python GUI\

    会弹出一个对话框,要求保存tcl文件,将基保存在保存上,然后就会弹出一个python GUI代码的框出来,这这个代码还不能直接用,我们点sava先将其保存在桌面. 下一节将讲怎么将这不可用的GUI代码变为可用的GUI代码, 代码太长,我不能完全贴上来,我将这个生成的py档也上传至百度云,有需要参考的自己去下载吧:

    https://pan.baidu.com/s/1gl_Ln75UZhVvrk1q8LSMjw#list/path=%2F 

    (通过PAGE生成python GUI界面(用PAGE拖出需要的GUI界面).py)

    弹出的GUI代码框如下:


    展开全文
  • 主要介绍了Python+Selenium使用Page Object实现页面自动化测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 首先请问这个page_source 得到的是页面的源代码吗? 为什么我打印出啦只有一部分,不是全部的源码呢
  • Python+Selenium-driver.page_source获取页面源码

    万次阅读 热门讨论 2021-03-19 17:33:14
    driver.page_source selenium的page_source方法可以获取到页面源码 跟爬虫有点相似,获取到...以煎蛋网为例,获取首页的全部title(获取页面源码 – 使用re正则提取需要的title) 代码 祝大家学习python顺利! ...

    driver.page_source

    selenium的page_source方法可以获取到页面源码

    跟爬虫有点相似,获取到页面资源,提取出我们需要的信息
    案例
    以煎蛋网为例,获取首页的全部title(获取页面源码 – 使用re正则提取需要的title)

    代码

    在这里插入图片描述

    祝大家学习python顺利!

    展开全文
  • 主要介绍了Python实现Selenium自动化Page模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • py_innodb_page_info工具为《INNODB存储引擎》作者姜承尧写的。 该工具用来分析表空间中的各页得类型和信息,用python编写。 网上多是python2版本的,这里给出python3版本的。
  • python3+PyQt5图图形形项项的的自自定定义义和和交交互互 python3实实现现page Designer应应用程程序序 这篇文章主要为大家详细介绍了python3+PyQt5图形项的自定义和交互文中示例代码介绍的非常详细具有一 定的...
  • selenium+Python Page Object自动化测试

    千次阅读 2018-09-16 00:58:39
    本文是我在学习了selenium+Python进行自动化测试后的总结,方便以后回顾和填坑吧(确实遇到了不少坑~~),也希望各位大神能多多指教! 本文主要包含Page Object模式设计测试用例,selenium元素定位和常用操作,同时...

    本文是我在学习了selenium+Python进行自动化测试后的总结,方便以后回顾和填坑吧(确实遇到了不少坑~~),也希望各位大神能多多指教!
    本文主要包含Page Object模式设计测试用例,selenium元素定位和常用操作,同时包含自己在实践中遇到的各种坑。
    我设计的场景是用火狐浏览器登录百度首页,在首页上测试输入框,以及含有‘百度’的链接数量;然后点击“设置”–>”高级搜索”,进入搜索设置页面,检查下拉菜单和单选框的属性;然后在搜索框输入搜索词,在 搜索页面得到搜索数目。

    1. Page Object模式测试用例设计

    PageObject是一种程序设计模式,将面向过程转变为面向对象(页面对象),将测试对象及单个的测试步骤封装在每个Page对象中,以page为单位进行管理。可以使代码复用,降低维护成本,提高程序可读性和编写效率。
    PageObject可以将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),提高用例的可维护性。

    我理解的就是将Page和test分开,这样在一项改变时不会影响整体,变动减少。

    Pages

    首先看pages的设计,先有一个BasePage,这个BasePage包含所有待测page都能用到的公用方法。
    这里写图片描述
    验证页面的方法_validate_page()使用了@abstractmethod进行装饰,基类不能被实例化,只有当子类继承并且实现了改方法后子类才可以实例化,这样可以对不同的页面进行不同的验证。并定义了Search和Setting两种方法,用于转向不同页面,使用@property将方法转为属性,方便实例化对象后使用。
    对于首页的设计,如下:
    这里写图片描述
    在首页中,完成了对页面验证_validate_page() 的重写,并对含有’百度’的链接数和‘新闻’链接状态进行了返回。
    对于搜索设置页面,如下:
    这里写图片描述
    在SettingRegion()类实现点击‘设置’进入设置页面,在SettingPage类里完成对该页面一些元素的检查,包括搜索时间范围的下来菜单,检查其包含的下来选项数量,选择其中一项,查找范围的单选按钮,选中一项。
    对于搜索结果页面,如下:
    这里写图片描述

    主要完成输入搜索词点击搜索,SearchRegion()类,然后在搜索结果页面定位到结果语句,并将语句中的数值返回(即搜索到的条目数)。

    Test

    我使用的是unittest来组织测试,pip install unittest 安装后,先在test的基类中完成测试前/后的方法,即setUp()和tearDown(),这会在每次test方法前后调用,若是想应用于整个测试类,可以使用类方法setUpClass()和tearDownClass(),并使用@classmethod 修饰。基类如下:

    import unittest
    from selenium import webdriver
    
    class BaseTestCase(unittest.TestCase):
        """docstring for BaseTestCase"""
        def setUp(self):
            # create a new Firefox session
            profile_dir = r'C:\Users\czhou012\AppData\Roaming\Mozilla\Firefox\Profiles\iewanxoz.default'
            profile = webdriver.FirefoxProfile(profile_dir)
            self.driver = webdriver.Firefox(profile)
            self.driver.implicitly_wait(30)
            self.driver.maximize_window()
    
            # navigate to the application home page
            self.driver.get('https://www.baidu.com/')
    
        def tearDown(self):
            # close the browser window
            self.driver.quit()
    

    最后写测试类,继承于BaseTestCase():

    import unittest
    from pages.homepage import HomePage
    from pages.settingpage import SettingRegion
    from base.basetestcase import BaseTestCase
    from base.data import GetData
    from ddt import ddt, data, unpack
    
    @ddt
    class PageTest(BaseTestCase):
        """docstring for PageTest"""
        #@unittest.skip('not run')
        def test_home_page(self):
            hp = HomePage(self.driver)
            self.assertEqual(4,hp.links_count)
            self.assertTrue(hp.news_able)
        #@unittest.skip('not run')
        def test_set_page(self):
            set_page = HomePage(self.driver).Setting.set_to()
            self.assertEqual(5,set_page.num_show_time)
            self.assertEqual('最近一天',set_page.select_one_day)
            self.assertTrue(set_page.radio_select)
        #@unittest.skip('no run ')
        @data(*GetData().data)
        @unpack
        def test_search_result(self,term,expect_num):
            sp = HomePage(self.driver).Search.searchFor(term)
            self.assertGreater(sp.result_num,expect_num)
    
    if __name__ == '__main__':
        unittest.main(verbosity=2)

    分别完成首页的测试,设置页面的测试,和搜索结果页面的测试。

    数据驱动

    在搜索结果的测试中我使用了数据驱动,即将数据参数化,适用于大量数据重复操作中,在这里我新建了一个csv数据文档,随意编写了搜索词条和必须大于的返回结果数目。
    这里写图片描述
    对应编写用于读取数据的模块:

    #coding:utf-8
    import csv
    
    class GetData(object):
        """docstring for GetDat"""
        def __init__(self, file_name=None):
    
            if file_name != None:
                self.file_name = file_name
            else:
                self.file_name = r'D:\TEST\selenium\my\testdata.csv'
            # create an empty list to store rows
        @property
        def data(self):
            rows = []
            # open the CSV file
            with open(self.file_name,'r',encoding='utf-8') as data_file:
                # create a CSV Reader from CSV file
                reader = csv.reader(data_file)
                # skip the headers
                next(reader, None)
                # add rows from reader to list
                for row in reader:
                    rows.append(row)
                num_list = list(map(int,list(zip(*rows))[1]))
                term_list = list(zip(*rows))[0]
                return list(zip(term_list,num_list))
    

    这样调用该对象的data即可返回数据[('phones', 3), ('music', 5), ('iphone 5s', 10)]
    使用ddt模块pip install ddt, 在测试类前加修饰@ddt ,在使用数据驱动的测试方法前使用@data(数据集),获取数据,使用@unpack 会自动将数据对应到多个参数上。单独运行可以看出结果:
    这里写图片描述
    去掉注释整体运行可得结果:
    这里写图片描述

    填坑

    坑一:直接使用脚本启动Firefox浏览器,会发现没有浏览器插件,打开相同的网址,网页展示也不一样,这会给定位元素造成很大困扰。原因:用脚本去打开浏览器时候,其实是重新打开了一个进程,跟手动打开浏览器不是一个进程。解决方法:在启动时webdriver.Firefox(profile)传入参数profile,具体可参考此博文
    坑二:对于需要悬停操作显示元素的定位:
    这里写图片描述
    百度首页的搜索设置选项需要在‘设置’悬停显示,需要加入鼠标移动到指定元素中央的操作。
    坑三:选择下拉菜单选项时可能会有报错:‘Element could not be scrolled into view’,加入等待时间即可。
    坑四:逐行读取csv文件后获得的二维列表中,Number列是str类型,这样不能直接比较,我这里采用的方法是将该列取出转为int,再和前一列合并。
    坑五:我定位到的是百度搜索结果的一句话。需要在这句话中找出用逗号分隔表示的数值,这里没用正则表达式,而是使用isdigit() 来判断,需要注意返回的是类似于[‘1’,’2’,’3’,’4’]这样的列表,还需要拼接后再转为int类型。


    新手学习,欢迎指教!

    展开全文
  • 通过PAGE生成python GUI界面(安装)

    千次阅读 2018-07-15 22:13:40
    注:当前我的使用环境为windows10 64bit/python v3.6/PAGE v4.14/Tcl v8.6.7.0本文指在通过说明使用PAGE生成python的GUI界面PAGE(python Automatic GUI Generator), 以下是它的官方说明:PAGE is an drag-and-drop ...
    注:当前我的使用环境为windows10 64bit/python v3.6/PAGE v4.14/Tcl v8.6.7.0
    
    本文指在通过说明使用PAGE生成python的GUI界面
    PAGE(python Automatic GUI Generator), 以下是它的官方说明:
    PAGE is an drag-and-drop GUI generator, bearing a resemblance to Visual Basic. It allows one to easily create GUI windows containing a selection of Tk and ttk widgets. Required are Tcl/Tk 8.6 and Python 2.7+. I am actually using Tcl/Tk 8.6 and Python 2.7. PAGE springs from Virtual Tcl, a Tcl/Tk program, modified to generate Python modules that realizes the desired GUI. Tcl is required for running PAGE but is not required for executing the generated Python code.

    PAGE is not an end-all, be-all tool, but rather one that attempts to ease the burden on the Python programmer. It is aimed at the user who will put up with a less than completely general GUI capability in order to get an easily generated GUI. A helper and learning tool, it does not build an entire application but rather is aimed at building a single GUI class and the boiler plate code in Python necessary for getting the GUI on the screen.


    译成中文就是:
    PAGE是一个拖放式GUI生成器,与Visual Basic相似。它允许人们轻松创建包含选择的Tk和ttk小部件的GUI窗口。要求是Tcl/Tk 8.6和Python 2.7+。我实际上使用的是Tcl/Tk 8.6和Python 2.7。PAGE来自Virtual Tcl,一个Tcl / Tk程序,经过修改后可生成实现所需GUI的Python模块。运行PAGE需要Tcl,但执行生成的Python代码不需要Tcl。

    PAGE不是最终的全部工具,而是一种试图减轻Python程序员负担的工具。它针对的是那些将提供不完全通用的GUI功能以便获得易于生成的GUI的用户。作为帮助和学习工具,它不构建整个应用程序,而是旨在构建单个python GUI类代码,以便在屏幕上获取GUI。

    所以通过以上的说明,就知道,要使用这玩竟上需要python2.7+和Tcl8.6+以上版本. python2.X现在我没有用,用的是python3.x,相信现在大部分用的也是python3.x,故当用这个生成的GUI不能直接用,但是我们还是有办法生成我们想到的GUI代码.
    先安装python3.x/Tcl8.6+/PAGE吧,以下是连接:
    python:
    https://www.python.org/downloads/windows/
    Tcl/tk:
    https://www.activestate.com/activetcl/downloads
    PAGE:

    http://page.sourceforge.net/

    如果怕麻烦,也可以直接在以下百度云盘链接下载:

    https://pan.baidu.com/s/1gl_Ln75UZhVvrk1q8LSMjw#list/path=%2F

    在以上链接下载并按说明一步步安装就行了。

    展开全文
  • python GUI 软件 page 下载

    千次阅读 2018-10-28 19:28:55
    https://sourceforge.net/projects/page/ 在这个网页中点Download,然后跳转到一个网页中下载https://sourceforge.net/projects/page/files/latest/download,然后连接失败导致下载失败。这时,点击Problem ...
  • 本文介绍基于 Python3 的 Pyecharts 制作 Page(顺序多图) 时需要使用的设置参数和常用模板案例,可根据实际情况对案例中的内容进行调整即可。 使用 Pyecharts 进行数据可视化时可提供直观、交互丰富、可高度个性化...
  • 主要为大家详细介绍了python3+PyQt5图形项的自定义和交互,,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • from selenium import webdriver driver = webdriver.Chrome() response = driver.get('http://culture.dzwww.com/wx/') print(driver.page_source)
  • 根据系统写的一个PageObject 框架,可以应用在其他系统,但是要写自己系统的page,仅供参考
  • 安装生成python GUI界面的PAGE软件

    千次阅读 2019-07-19 22:37:48
    第一步:先安装PAGE运行环境 下载地址:https://platform.activestate.com/Page-my/ActiveTcl-8.6/distributions?new_project=true 默认安装即可 第二步:安装PAGE软件 下载地址:http://page.sourceforge.net/ 也...
  • python celery 使用

    万次阅读 多人点赞 2018-08-31 17:56:38
    Celery 是一个由 Python 编写的简单、灵活、可靠的用来处理大量信息的分布式系统,它同时提供操作和维护分布式系统所需的工具。 Celery 专注于实时任务处理,支持任务调度。 说白了,它是一个分布式队列的管理工具...
  • WebDriver(PageObject模型-Python版).pdf
  • python 抓取pdf第一页为图片 (python get first page of pdf as image)
  • python-selenium-bdd 一个基于Python的测试框架,包括BDD,Selenium Webdriver和Page Object Model。 在文章中了解有关如何使用此存储库的更多信息:
  • PythonPage Object设计模式

    千次阅读 2019-06-23 16:59:25
    (一)前言 简单的说就是分为2层,页面class 和测试class。...#父类和子类我是按自己的理解进行描述的,或者可以说basepage对象(父对象,提供公有的属性、方法) 和 page对象(具体哪一个页面) 测...
  • ReportLab 性能强大,维基百科即使用Python和ReportLab 生成PDF。 Reportlab is known for its ability to generate a PDF fast. In fact, Wikipedia chose Reportlab as their tool of choice for generating PDFs ...
  • 在def start里调用class Login(Page)和class Insure(Page),Login打开了一个窗口,到了Insure也打开了一个窗口,咋样呢才能让Insure继续使用Login已经打开得窗口呢? 谢谢各位大佬解答问题。
  • python里的get_page函数

    千次阅读 2013-11-09 01:21:20
    今天在公开课里看到直接get_page函数来获取网页的代码 可自己尝试了下发旋无论是在python2还是python3里头都并不是预先设定好的函数 解决方案如下: import urllib2 def get_page(url): return urllib2....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 202,600
精华内容 81,040
关键字:

python的page怎么用

python 订阅