首页 文章 精选 留言 我的

精选列表

搜索[文件同步工具],共10000篇文章
优秀的个人博客,低调大师

[雪峰磁针石博客]selenium自动化测试工具python笔试面试项目实战5键盘操作

说明 本文参考答案基于Chrome,分辨率1920*1080,在其他环境表现可能会不同。本文代码地址 参考书籍下载: Learning Selenium Testing Tools with Python-2014.pdf Selenium自动化测试 基于 Python 语言 - 2018.pdf 上机实操: 在新的TAB打开连接 打开:https://china-testing.github.io/ 选择"数据分析"栏目的文章 按住"Ctrl+TAB"选择"python"栏目的文章 切换到新的标签"python" 关闭新的标签"python" 关闭浏览器 参考答案 #!/usr/bin/python3 # -*- coding: utf-8 -*- # 讨论钉钉免费群21745728 qq群144081101 567351477 # CreateDate: 2018-10-17 import time from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.get("https://china-testing.github.io/") driver.implicitly_wait(30) driver.maximize_window() element = driver.find_element_by_link_text('数据分析') element.click() time.sleep(3) element = driver.find_element_by_link_text('python') ActionChains(driver).key_down(Keys.CONTROL).click(element).key_up( Keys.CONTROL).perform() time.sleep(3) driver.switch_to.window(driver.window_handles[1]) time.sleep(3) driver.close() # 关闭当前TAB time.sleep(3) driver.quit() 面试问答 driver.quit() 和 driver.close()有什么区别? 2.selenium中按下和松开键如何表示? 3.简述ActionChains类的作用? 上机实操: 验证悬浮提示内容 打开:http://jqueryui.com/tooltip/ 鼠标移动到上图的"Your age:" 确认悬浮提示内容为'We ask for your age only for statistical purposes.' 关闭浏览器 参考答案 #!/usr/bin/python3 # -*- coding: utf-8 -*- # 讨论钉钉免费群21745728 qq群144081101 567351477 # CreateDate: 2018-10-17 import unittest import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions from selenium.webdriver.common.action_chains import ActionChains class ToolTipTest (unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://jqueryui.com/tooltip/") self.driver.implicitly_wait(30) self.driver.maximize_window() def test_tool_tip(self): driver = self.driver frame_elm = driver.find_element_by_class_name('demo-frame') driver.switch_to.frame(frame_elm) time.sleep(3) age_field = driver.find_element_by_id('age') ActionChains(self.driver).move_to_element(age_field).perform() time.sleep(3) tool_tip_elm = WebDriverWait(self.driver, 10).until( expected_conditions.visibility_of_element_located(( By.CLASS_NAME, 'ui-tooltip-content'))) # verify tooltip message self.assertEqual('We ask for your age only for statistical purposes.', tool_tip_elm.text) time.sleep(3) def tearDown(self): self.driver.close() if __name__ == '__main__': unittest.main(verbosity=2) 面试问答 1.move_to_element()有什么用途? 上机实操: 双击改变颜色 打开:http://api.jquery.com/dblclick/ 双击上图蓝色的框,把颜色该变成黄色 参考答案 #!/usr/bin/python3 # -*- coding: utf-8 -*- # 讨论钉钉免费群21745728 qq群144081101 567351477 # CreateDate: 2018-10-18 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import unittest class DoubleClickTest (unittest.TestCase): URL = 'http://api.jquery.com/dblclick/' def setUp(self): self.driver = webdriver.Chrome() self.driver.get(self.URL) self.driver.maximize_window() def test_double_click(self): driver = self.driver frame = driver.find_element_by_tag_name('iframe') driver.switch_to.frame(frame) box = driver.find_element_by_tag_name('div') # verify color is Blue self.assertEqual('rgba(0, 0, 255, 1)', box.value_of_css_property('background-color')) ActionChains(driver).move_to_element( driver.find_element_by_tag_name('body')).perform() ActionChains(driver).double_click(box).perform() # verify Color is Yellow self.assertEqual('rgba(255, 255, 0, 1)', box.value_of_css_property('background-color')) def tearDown(self): self.driver.close() if __name__ == '__main__': unittest.main(verbosity=2) 面试问答 1.double_click()有什么用途? 2.rgba的含义? 上机实操: 在新的TAB打开连接 打开:http://jqueryui.com/resources/demos/droppable/default.html 拖动左边的框到右边 参考答案 #!/usr/bin/python3 # -*- coding: utf-8 -*- # 讨论钉钉免费群21745728 qq群144081101 567351477 # CreateDate: 2018-10-18 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import unittest class DragAndDropTest (unittest.TestCase): URL = 'http://jqueryui.com/resources/demos/droppable/default.html' def setUp(self) : self.driver = webdriver.Chrome() self.driver.get(self.URL) self.driver.maximize_window() def test_drag_and_drop(self): driver = self.driver source = driver.find_element_by_id('draggable') target = driver.find_element_by_id('droppable') ActionChains(self.driver).drag_and_drop(source, target).perform() self.assertEqual('Dropped!', target.text) def tearDown(self): self.driver.close() if __name__ == '__main__': unittest.main(verbosity=2) 面试问答 1.drag_and_drop()有什么用途? 参考资料 讨论 钉钉群21745728 qq群144081101 567351477 本文最新版本地址 本文涉及的python测试开发库 谢谢点赞! 本文相关海量书籍下载

优秀的个人博客,低调大师

八月新增开源项目:假装自己是图形界面的 Git 命令行工具

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品。目前这些开源项目主要来源于编辑们的搜集和用户的投递,所以如果你有更好的开源项目推荐,欢迎积极投递。 戳这里查看投递软件的正确姿势 >>>https://www.oschina.net/question/2918182_2266982。 Web Forever —— Web 开发项目推荐 facebookincubator/fizzFizz ——C++ 14 实现的 TLS 1.3 标准库 TLS 1.3 已正式发布,而且主流浏览器也已经提供了对其的支持。开发者对于 TLS 1.3 就更不能忽视了。Fizz 是由 Facebook 开源的 TLS 1.3 标准库,旨在帮助开发者实现 TLS 1.3 协议以及所有推荐的安全性和性能相关配置。 Fizz 使用 C++ 14 进行编写,它是一个可靠且高性能的 TLS 库,具有现代 TLS 库所需的一些重要功能。支持所有主要的握手模式、强大的加密算法和性能优化,旨在以超过 10% 的速度安全地传输数据。除了 TLS 1.3 附带的增强功能外,Fizz 还为中间件握手失败提供了改进的解决方案,默认支持异步 I/O,并且可以处理分散/收集 I/O 以消除对额外数据副本的需求。 Facebook 与 IETF 长期密切合作,在增加 TLS 安全性的同时,也没有忽略性能的重要性,过去他们使用了自定义的零协议(Zero Protocol),现在 Facebook 已经用 Fizz 取代了其旧的零协议,Fizz 现在负责每天在 Facebook 上获得的数万亿连接。 resilience4j/resilience4jResilience4j —— 面向 Java 8 和函数式编程的轻量级容错组件库 Resilience4j 是一个轻量级的容错组件,其灵感来自于Hystrix,但主要为 Java 8 和函数式编程所设计。轻量级体现在其只用Vavr库(前身是 Javaslang),没有任何外部依赖。而 Hystrix 依赖了 Archaius ,Archaius 本身又依赖很多第三方包,例如 Guava、Apache Commons Configuration 等。 限速组件架构: alibaba/noformnoForm—— 阿里开源的基于 React 的表单解决方案 表单在前端可谓是非常常见的场景,而且通常需要花费开发非常多的时间来处理各种复杂的逻辑。特别是在企业中后台的业务中,存在着大量的表单,比如客户的订单,投诉的问题单,服务跟进过程每个流程的流转。凡是存在用户输入的地方都存在着各种各样的表单,字段或多或少,逻辑或繁或简。需求一旦变动,造成的代码变动(代码量或者逻辑分支)可能是非常恐怖的。比如当A字段选择了x的时候,增加B,C,D三个字段。相信这是非常多前端开发非常苦恼的问题。 NoForm 是阿里巴巴外综服前端团队在外综服(外贸综合服务)场景下,经过长期的思考和打磨产出的一款基于 React 的表单解决方案。可能有人不理解,可能会问:表单嘛,能有多复杂? 可能你从没见过一个表单需要填写150+个字段。可能你也没有见过一个表单实际是由10+个子表单组合出来的。可能你也没见过一个表单的字段是后端动态配置的。NoForm 从解决业务复杂性的角度出发,找到了几个抓手,将表单方案进行了优化和开源。 NoForm 将表单操作到抽象到核心,从此数据(data)的管理和视图(view)分离开来,权责分明。 通过内置的状态管理方案,能够快速切换同一表单的不同状态,新建和详情不再需要维护多份代码。 通过定制组件接入标准,方便接入社区优秀的组件库,减少开发者重复劳动的时间。 请访问Simple Demo获取更好的试用体验。 Funny OSS — 有趣的开源软件 jesseduffield/lazygit——用于 Git 命令行的简单终端 UI lazygit 是一个用于 Git 命令行的简单终端 UI,使用 Go 语言编写,用到了 gocui 库,目的是在命令行提供 Git 的图形界面。 相信不少朋友看到这里会对这个所谓的“图形界面”嗤之以鼻,因为这个“图形界面”依然需要通过命令行进行控制,毕竟程序员们想的是,如果我懂命令行早就用命令行操作了,还会在乎有没有界面吗?话虽如此,这个项目还是很受欢迎的,在 GitHub 上的 star 数早已超过一万。各位感兴趣的话不妨安装来把玩一下。 Deep Learning —— 深度学习项目推荐 oracle/graphpipeGraphPipe——深度学习模型部署框架 机器学习有望改变行业现状。但是,它在企业中的应用速度比大家预期的要慢,因为这些组织很难自己部署和管理机器学习技术。部分挑战是机器学习模型通常使用定制技术进行训练和部署,从而难以跨服务器或不同部门进行模型的部署。 为此,甲骨文希望通过开源且高性能的标准网络协议来传输张量数据(tensor data) —— 这样的一种技术手段来解决上述挑战。这项新标准,甲骨文称之为 GraphPipe,可使企业更容易从任何框架部署和查询机器学习模型。 官方对 GraphPipe 的解释为,这是一种协议和软件集合,旨在简化机器学习模型部署并将其与特定于框架的模型实现分离。 本期的推荐到此结束,更多有趣有料的开源软件尽在开源中国社区等你来发现~! 最后,欢迎关注【开源中国】微信公众号(ID: oschina2013),获取更多技术干货和第一手开源资讯

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册