PYTHON,SELENIUM如何获取HTML内元素,

PYTHON,SELENIUM如何获取HTML内元素,,第1张

有两个问题:

1 frame标签后面加冒号是标准的frame写法吗?不会是自定义的标签吧

<frame:groupmenu >

</frame>

2 我用的switch_to_frame(frameName) 没有问题

        print '-------------------------switch to top frame'

        driverswitch_to_default_content()

        driverswitch_to_frame('top')

        print driverfind_element_by_id('top-btn')text

        print 'switch_to_frame done'

        print '-------------------------switch to left frame'

        driverswitch_to_default_content()

        driverswitch_to_frame('left')

        print driverfind_element_by_id('left-btn')text

        print 'switch_to_frame done'

        print '-------------------------switch to main frame'

        driverswitch_to_default_content()

        driverswitch_to_frame('main')

笔记:

01设置元素等待时间

自动化测试的时候,元素定位没有错,但是跑脚本的时候却报错了

例如,登录的时候要等登录页面加载出来才能输入用户名和密码

selenium设置元素等待时间的3种方式及区别

1sleep() --固定等待时间:强制等待,不能把握准确的等等时间,适合调试时用

2implicitly_wait() --隐式等待时间:等页面加载完成才执行下一步 *** 作,一般设置一次即可

3WebDriverWait --显示等待时间:配合untill()和not untill()方法,根据判断条件 灵活处理等待时间

要先设置一个超长时间,在这个时间内,程序根据调用频率每隔几秒查看一下,如果条件满足,则执行下一步 *** 作,若不满足且超过了等待时间则抛出异常

导包:from seleniumwebdriversupportui import WebDriverWait

使用:WebDriverWait(driver, 超时时间, 调用频率, 要忽略的异常)until(要执行的方法, 超时时返回的错误信息)

实例:

replace:

02键盘事件Keys类

制表符:send_keys(KeysTAB)

退出键:send_keys(KeysESCAPE)

F1:send_keys(KeysF1)   f1~f12 以此类推

03二次定位

顾名思义,通过多个元素,定位两次

drfind_element(ByCLASS_NAME,"s_input")send_keys("python")

二次定位:

drfind_element(ByNAME,"query")find_element(ByCLASS_NAME,"s_input")send_keys("python")

04selenium鼠标悬停类-- ActionChains()

导包:from seleniumwebdrivercommonaction_chainsimport ActionChains

实例:将鼠标移动至更多设置,悬停鼠标

elem1= drfind_element(ByLINK_TEXT,"设置")

ActionChains(dr)move_to_element(elem1)perform()

05selenium警告框的处理

很多web应用经常会遇到JavaScript编写的alert 、confirm 以及prompt d窗,需要用到switch_toalert来切换d窗,并对d窗进行输入信息,关闭等处理。

switch_toalerttext  --获取d窗文本信息

switch_toalertaccept()  --点击d窗中确定按钮

switch_toalertdismiss()  --点击d出中取消按钮

switch_toalertsendKeys("字符串")  --在d窗中输入信息

实例:

06下拉菜单选择的三种方式

导包:from seleniumwebdriversupportuiimport Select

#选择下拉框的o2

elem1 = drfind_element(ByID,"s3Id")

1:根据value值定位

Select(elem1)select_by_value("o2val")

2根据index定位

Select(elem1)select_by_index(1)

3根据下拉框文本信息定位

Select(elem1)select_by_visible_text("o2")

07多窗口切换

window_handles --获取所有窗口句柄

switch_towindow(指定窗口) --切换到指定窗口

08selenium之JS *** 作浏览器滚动条位置

execute_script("windowscrollTo(0,n);")

09selenium之JS *** 作隐藏元素

隐藏元素的标识:style="display:none;"

一般我们通过将隐藏元素的属性修改成显示再定位

10 *** 作excel文件

将测试数据参数化用到

101准备参数化数据文件

102导包

打开文件,填写文档路径

运行结果:

定位到sheet的位置

读取sheet的行和列的内容

#读取表的行的方法

rows = sheet1nrows

print("行数",rows)

columns = sheet1ncols

print("列数",columns)

读取指定行的值

#读取指定行的值

rowValue1 = sheet1row_values(0)

print(rowValue1)

#读取指定列的值

colValue1 = sheet1col_values(0)

print(colValue1)

#输出所有用户名和对应的密码

for iin range(1,rows):

print("用户名:" + sheet1row_values(i)[0] +",密码:" + sheet1row_values(i)[1])

Web 应用程序的自动化测试 如今,大多数的应用软件被写为基于 Web 的应用程序并通过浏览器展示给用户并与之进行交互。不同公司和机构组织都需要测试这些应用程序的有效性。在一个高度交互性和响应的软件流程时代,许多组织倾向于运用敏捷开发理论,自动化测试也就成了必备一项。所谓自动化测试,就是执行自动测试工具或者用某种程序设计语言编写程序,控制被测软件中的各种模块,模拟手动测试步骤,完成测试。测试自动化有很多优点,比如:频繁的回归测试、快速反馈给开发人员、几乎无限的重复测试用例的执行、支持敏捷和极端发展的方法、自定义的缺陷报告、不会错过人工手动测试可能遗漏的缺陷等。目前也有很多商业和开源的软件,可以辅助进行测试自动化的开发。Selenium 应该是应用最为广泛的开源解决方案。 Selenium 概述 Selenium 是一个用于 Web 应用程序测试的工具,Selenium 测试直接自动运行在浏览器中,就像真正的用户在手工 *** 作一样。支持的浏览器包括 IE、Chrome 和 Firefox 等。这个工具的主要功能包括:测试与浏览器的兼容性 - 测试您的应用程序看是否能够可以地工作在不同浏览器和 *** 作系统之上;测试系统功能 - 创建回归测试检验软件功能和用户需求;支持自动录制动作,和自动生成 NET、Perl、Python、Ruby 和 Java 等不同语言的测试脚本。Selenium 是 ThoughtWorks 专门为 Web 应用程序编写的一个验收测试工具。 Selenium 二0 与以往版本的区别 Selenium 二0(又名 Selenium WebDriver)的主要新功能是集成了 WebDriver。WebDriver 曾经是 Selenium 一(又名 Selenium RC)的竞争对手。Selenium RC 在浏览器中运行 JavaScript 应用,而 WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器。 从 Selenium 项目简史中可以了解到,Selenium 和 WebDriver 的开发人员都认为两个工具各有优势,二者合并将创造更强大的 Web 测试框架。 Selenium 一 是一款流行和完善的测试框架,支持众多浏览器(因其 JavaScript 实现),允许用户通过许多编程语言(从 Java/C# 到 PHP、Erlang),而 WebDriver 则弥补了 Selenium 一 的缺点,跳出了 JavaScript 的沙箱,提供快速、轻量级的浏览器模拟器。之所以合并,原因如下: 一、WebDriver 解决了 Selenium 存在的缺点(比如,绕过 JS 沙箱); 二、Selenium 解决了 WebDriver 存在的问题(例如支持广泛的浏览器); 三、Selenium 的主要贡献者们都觉得合并项目是为用户提供最优秀框架的最佳途径。 Selenium 二0 还包括 Selenium Server,通过 Selenium Grid 支持分布式测试。新的 Selenium Grid 支持使用原来的 Selenium RC API 和 WebDriver API 测试。Selenium IDE 一一0 也将支持 WebDriver API,包括将录制生成的测试用例导出为 WebDriver 所支持的各种编程语言(Ruby、Python、C# 和 Java)。 WebDriver 针对各个浏览器而开发,取代了 Selenium RC 中嵌入到被测 Web 应用中的 JavaScript,与浏览器的紧密集成可以支持创建更高级的测试,且避免了 JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver 还利用 *** 作系统级的调用模拟用户输入。WebDriver 支持 Firefox (FirefoxDriver)、IE (InternetExplorerDriver)、Opera (OperaDriver) 和 Chrome (ChromeDriver)。它还支持 Android (AndroidDriver) 和 iPhone (IPhoneDriver) 的移动应用测试。此外,还包括一个基于 HtmlUnit 的无界面实现,即 HtmlUnitDriver。WebDriver API 可以通过 Python、Ruby、Java 和 C# 访问,支持开发人员使用他们偏爱的编程语言来创建测试

以上就是关于PYTHON,SELENIUM如何获取HTML内元素,全部的内容,包括:PYTHON,SELENIUM如何获取HTML内元素,、selenium之webdriver详解——小白进阶之路(二)、在selenium webdriver中使用executeScript()方法获取元素的style font属性失败。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9564761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存