蜗牛学院测试开发学习笔记--UI自动化2

一、警告框处理

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>警告窗口操作</title>
        <script type="text/javascript">
            // JavaScript一些函数
            // 定义了一个函数
            function alterbutton(){
                alert("我是你想看到的人!!!")
            }
            function confirmButton(){
                // msg 接受的就是确定或者取消
                msg = confirm("点击确定或者取消:")
                // 判断
                if (msg){
                    alert("点击了确认按钮")
                }else{
                    alert("点击了取消按钮")
                }
            }
            function promptButton(){
                msg = prompt('输入一个值:', '我是默认值');
                alert(msg)
            }
        </script>
    </head>
    <body>
        <!-- 
         type:指明类型
         value:按钮的名字
         onclick:当你点击这个按钮的时候执行那一段函数
         -->
        <input type="button" value="我是一个普通按钮" onclick="alterbutton()"/>
        <input type="button" value="具有确定和取消按钮" onclick="confirmButton()"/>
        <input type="button" value="具有确定和取消按钮可以输入内容" onclick="promptButton()"/>
    </body>
</html>

1.普通的alter弹窗

from selenium import webdriver
import os
import time
# 打开浏览器
driver = webdriver.Edge()
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(10)
# 由于是直接打开一个html页面,所以这里需要我们进行一次路径的转换拼接
filepath = "file:///" + os.path.abspath("new_file03.html")
# 打开网页
driver.get(filepath)
# 点击 按钮
driver.find_element_by_css_selector('input[οnclick="alterbutton()"]').click()
# 切换到alter弹窗
alert_obj = driver.switch_to.alert
# 获取弹窗文本信息
print(alert_obj.text)
time.sleep(3)
# 点击 弹窗的确认按钮
alert_obj.accept()

2、confirm确认框处理(确定和取消按钮)

from selenium import webdriver
import os
import time
# 打开浏览器
driver = webdriver.Edge()
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(10)
# 由于是直接打开一个html页面,所以这里需要我们进行一次路径的转换拼接
filepath = "file:///" + os.path.abspath("new_file03.html")
# 打开网页
driver.get(filepath)
# 点击
driver.find_element_by_css_selector('input[οnclick="confirmButton()"]').click()
# 切换到该弹窗
confirm_obj = driver.switch_to.alert
# 获取弹窗文本信息
print(confirm_obj.text)
# 点击 确定 按钮
# confirm_obj.accept()
time.sleep(2)
# 点击 取消 按钮
confirm_obj.dismiss()

3、prompt提示框处理:有取消确定按钮 可以输入内容

driver.switch_to.alert:首先要切换到弹窗

.send_keys(“张无忌”):给弹窗输入内容

accept():点击确定按钮

dismiss():取消按钮

from selenium import webdriver
import os
import time
# 打开浏览器
driver = webdriver.Edge()
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(10)
# 由于是直接打开一个html页面,所以这里需要我们进行一次路径的转换拼接
filepath = "file:///" + os.path.abspath("new_file03.html")
# 打开网页
driver.get(filepath)
# 点击
driver.find_element_by_css_selector('input[οnclick="promptButton()"]').click()
# 切换到该弹窗
prompt_obj = driver.switch_to.alert
time.sleep(2)
# 给弹窗中输入内容
prompt_obj.send_keys("张无忌")
time.sleep(2)
# 点击 确定 按钮
prompt_obj.accept()

二、下拉选择框的处理

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>下拉选择框</title>
    </head>
    <body>
        <select name="myselect">
            <!-- value属性的值在下拉选择框的选项中一般是唯一的 -->
            <option value="o1">谷歌搜索</option>
            <option value="o2">百度搜索</option>
            <option value="o3">搜狗搜索</option>
            <option value="o4">bing搜索</option>
            <option value="o5">360搜索</option>
        </select>
    </body>
</html>
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import time
import os
# 打开浏览器
driver = webdriver.Edge()
# 浏览器最大化
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(10)
# 路径转换拼接
filepath = "file:///" + os.path.abspath("new_file04.html")
# 打开网页
driver.get(filepath)
# 先进行类的实例化,传入下拉选择框的对象
select_obj = driver.find_element_by_name('myselect')
s1 = Select(select_obj)
# 选择具体的选项:有三种方式
# 方式一:通过索引选择:索引是从0开始的 每一个option都有索引
# s1.select_by_index(0)
# 方式二:通过value属性的值
# s1.select_by_value('o4')
# 方式三:通过文本选择
s1.select_by_visible_text("搜狗搜索")

三、浏览器驱动

谷歌的驱动淘宝备用地址:https://registry.npmmirror.com/binary.html?path=chromedriver/
火狐浏览器驱动:https://github.com/mozilla/geckodriver/releases
EDGE:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

四、文件上传

126邮箱中添加附件

from selenium import webdriver
import os
import time
# 打开谷歌浏览器
driver = webdriver.Edge()
# 设置浏览器最大化
driver.maximize_window()
# 设置隐式等待
driver.implicitly_wait(10)
# 路径拼接
filepath = "file:///" + os.path.abspath("upfile.html")
# 打开文本
driver.get(filepath)
time.sleep(3)
# 如果你通过定位发现文件上传功能是使用input标签实现的,直接选择中该input标签,调用send_keys上传即可
driver.find_element_by_name('file').send_keys(r"F:\桌面壁纸\1.jpg")

五、selenium执行JavaScript代码

from selenium import webdriver
import time
# 打开浏览器
driver = webdriver.Edge()
# 设置浏览器最大化
driver.maximize_window()
# 设置隐式等待
driver.implicitly_wait(10)
# 打开网页
driver.get("http://www.baidu.com")
# 设置浏览器的窗口大小
driver.set_window_size(500, 600)
time.sleep(3)
# 浏览器的滚动条拖动就需要使用JavaScript代码来控制
# 100 指的水平方法的滚动条到左边页面的距离, 450 指的垂直方法到上页面的距离
js = "window.scrollTo(100,450);"
driver.execute_script(js)

六、关闭浏览器的操作

from selenium import webdriver
import time
# 打开浏览器
driver = webdriver.Edge()
# 设置浏览器最大化
driver.maximize_window()
# 设置隐式等待
driver.implicitly_wait(10)
# 打开网页
driver.get("http://www.baidu.com")
# 点击 hao123
time.sleep(2)
driver.find_element_by_xpath('//div[@id="s-top-left"]/a[2]').click()
time.sleep(3)
"""
close:如果该浏览器有多个标签页面,则会关闭第一个标签页
       如果浏览器只有一个标签页,调用close会关闭整个浏览器
quit:关闭整个浏览器
"""
driver.quit()

项目部署

1.Tomcat容器

docker run --name mytomcat -p 8888:8080 -v /tmp/test:/usr/local/tomcat/webapps/ -d tomcat:8

run: 生成容器

—name : 给容器起的名字,可以不指定,会自动分配一个名字

-p : 端口映射 主机端口:容器端口

-P: 也是端口映射,但是会自动分配一个主机端口和容器的端口做映射

-v : 做路径映射,主机路径 :容器中webapps的路径

-d:后台运行

2.MySQL容器

docker run -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

3.防火墙的配置

#查看防火墙状态
firewall-cmd --state# 开放8888和3307端口
firewall-cmd --permanent --add-port=8888/tcp
firewall-cmd --permanent --add-port=3307/tcp
​
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

4.将war放到映射到的 /tmp/test,修改配置文件

jdbc.properties

image-20220419173423484

5.创建数据库:

创建的数据库的名字必须和jdbc.properties中显示一样

6.重启容器

docker restart 容器id 容器id

7.测试

http://172.16.3.153:8888/WoniuBoss4.0

WNCD000 woniu123

退出容器:CTRL + P + Q

exit:有时候会导致容器停止运行

可以不用做

容器的开机自启,在etc/rc.d 下面有一个rc.local 这个文件,centos7在开启的时候会自动执行这个文本中的代码,我们执行将启动docker以及docker 容器的命令添加到里面即可

image-20220419174324093

配置如下:

systemctl start docker
docker start f52451d6430e e298f66099ab

image-20220419174655600

在centos7中,rc.local是没有执行权限的,所有还需要给授权

chmod 777 rc.local

docker部署禅道

docker run --name zentao -p 9999:80 -v /data/www:/app/zentaopms -v /data/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d idoop/zentao

设置防火墙允许9999端口通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值