每天小练习:Python自动化测试每天学习一点点,日后终成大神

Posted 小洁码很快!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天小练习:Python自动化测试每天学习一点点,日后终成大神相关的知识,希望对你有一定的参考价值。

多层框架或窗口的定位

1、switch_to_frame
有时候我们定位一个元素,定位器没有问题,但一直定位不了,这时候就要检查这个元素是否在一个frame中,seelnium webdriver 提供了一个switch_to_frame方法,可以很轻松的来解决这个问题。

# inner.html
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <div id="inner_div">
            <input type="text" name="name" id="name" value="" />
            <button type="button" id="btn">按钮</button>
        </div>
<script type="text/javascript">
            document.getElementById("btn").onclick = function(){
                var name = document.getElementById("name").value;
                window.alert(name);
            }
        </script>
    </body>
</html>

# outter.html
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>定位iframe</title>
    </head>
    <body>
        <div class="header" style="width: 100%;height: 100px;border: 1px solid red;"></div>
        <div class="center" style="overflow: auto;">
            <div class="left" style="height: 500px;width: 19%; border: 1px solid blue;float: left;"></div>
            <iframe src="inner.html" width="60%" height="500px" style="float:left;margin-left: 10px;"></iframe>
            <div class="right" style="height: 500px;width: 19%; border: 1px solid green;float: right;"></div>
        </div>
        <div class="footer" style="width: 100%;height: 100px;border: 1px solid red;"></div>
    </body>
</html>

定位如下:

# 只有导入 webdriver 包我们才能使用 webdriver API 进行自动化脚本的开发
# 将控制的 webdriver 的 Firefox 赋值给 browser;
driver = webdriver.Firefox()
# 打开本地页面
driver.get("http://127.0.0.1:8848/kk/outter.html")
# 只能等待 在一个时间范围内智能的等待
driver.implicitly_wait(5)
driver.switch_to_frame("inner")
driver.find_element_by_id("name").send_keys("python自动化测试")
driver.find_element_by_id("btn").click()
time.sleep(3)
driver.quit()

2、switch_to_window

有个需求、

1. 打开百度首页,点击登录按钮,点击立即注册按钮,打开新的窗口

2. 跳转到注册窗口,在注册窗口进行操作

3. 跳回到百度首页,点击登录弹出框的关闭按钮,在百度首页进行操作

第一步 打开百度、点击登陆、点击注册、

# coding=utf-8

from selenium import webdriver
import time

# 只有导入 webdriver 包我们才能使用 webdriver API 进行自动化脚本的开发
# 将控制的 webdriver 的 Firefox 赋值给 browser;
driver = webdriver.Firefox()
driver.maximize_window()
# 打开百度 点击登陆 点击注册
driver.get("http://www.baidu.com")
# 获得当前窗口
current_window = driver.current_window_handle
# 点击登陆 link定位
time.sleep(2)
driver.find_element_by_xpath('//*[@id="s-top-loginbtn"]').click()
# 点击注册
time.sleep(2)
driver.find_element_by_link_text('立即注册').click()

然后在不同的页面 进行不同的操作

# coding=utf-8

from selenium import webdriver
import time

# 只有导入 webdriver 包我们才能使用 webdriver API 进行自动化脚本的开发
# 将控制的 webdriver 的 Firefox 赋值给 browser;
driver = webdriver.Firefox()
driver.maximize_window()
# 打开百度 点击登陆 点击注册
driver.get("http://www.baidu.com")
# 获得当前窗口
current_window = driver.current_window_handle
# 点击登陆 link定位
time.sleep(2)
driver.find_element_by_xpath('//*[@id="s-top-loginbtn"]').click()
# 点击注册
time.sleep(2)
driver.find_element_by_link_text('立即注册').click()
# 获得所有窗口
all_windows = driver.window_handles
# 循环判断 不同的窗口执行不同的操作
for window in all_windows:
    if window != current_window: #不是百度主页 注册页面
        driver.switch_to.window(window)  # 跳转到注册窗口
        driver.find_element_by_id('TANGRAM__PSP_4__userName').send_keys('TOM')
        driver.find_element_by_id('TANGRAM__PSP_4__phone').send_keys('15188888888')
        driver.find_element_by_id('TANGRAM__PSP_4__password').send_keys('123456')
        time.sleep(3)
    if window == current_window:
        driver.switch_to.window(window)  # 跳转到百度首页窗口
        driver.find_element_by_id('kw').send_keys('python自动化')
        driver.find_element_by_id('su').click()
        time.sleep(3)
driver.quit()

最后为方便大家学习测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。


包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……

关注我公众号:【程序员二黑】即可获取这份资料了!

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流,里面也有各种软件测试资料和技术交流。

推荐阅读

高薪程序员也躲不过35岁这一关…当能力与年龄脱节,我们该如何自救

大学毕业开始销售…不甘于现状,转行测试的自救之路

从销冠到失业,最后选择软件测试,回头看看这段路,我很幸运!

以上是关于每天小练习:Python自动化测试每天学习一点点,日后终成大神的主要内容,如果未能解决你的问题,请参考以下文章

推荐12个宝藏自学网站,每天学一点,日后终成大神!

每天学习一点点:基于python的接口自动化测试框架日后终成大神!

软件测试自动化测试之——接口测试从入门到精通,每天学习一点点

每天学习一点:自动化测试框架之UnitTest

Python 练习冊,每天一个小程序

Python小练习更改版(更改一部分代码,与错误)