自学Python+Selenium自动化测试

        俗话说的好,书读百遍不如手过一遍,而编程这东西是看书看视频一万遍都不如你自己多敲代码、写脑图、总结分享转换成自己的内容来的实在。

        今天我就把最近学的(二)Selenium核心WebDriver API简单总结一下,方便自己以后找出来看看。


目    录

        一、页面元素定位、操作

        1、页面元素

        2、元素的定位方式

        3、元素的操作方法

        二、浏览器操作

        1、控制窗口大小

        2、控制后退、前进

        3、模拟浏览器刷新

        4、截屏

        5、模拟关闭

        三、鼠标、键盘操作

        1、鼠标

        2、键盘

        四、警告窗口处理

        1、在WebDriver中处理JavaScript所生成的警告模式窗口(alert警告框、confirm确认框、prompt提示框)

        2、从浏览器窗口切换到警告窗口

        3、对警告窗口操作

        五、多窗口、多表单处理

        1、多窗口

        2、多表单

        六、时间等待

        1、强制等待

        2、隐式等待

        3、显式等待


        一、页面元素定位、操作

        1、页面元素

        (1)在浏览器能显示的所有要素:图片、链接、文本框、按钮、下拉列表、视频

        2、元素的定位方式

        id(find_element(value="id值")、默认是by=By.ID可以不写)

        name(find_element(by=By.NAME, value="name值"))

        class name(find_element(by=By.CLASS_NAME, value="class值"))

        tag name(find_element(by=By.TAG_NAME, value="标签名")、重复性太高)

        link text(find_element(by=By.LINK_TEXT, value="链接显示文本"))

        partial link text(find_element(by=By.PARTIAL_LINK_TEXT, value="部分链接显示文本"))

        xpath(find_element(by=By.XPATH, value="xpath值")、xpath是xml中定位元素的语言、绝对路径(/html/body/.../input)、元素属性(//input[@id='kw'])、层级与属性结合(//*[@id='su'])、逻辑运算符)

        css selector(find_element(by=By.CSS_SELECTOR, value="css值")、CSS选择器、.class、#id、*、element、element>element、element+element、[attribute=value])

        3、元素的操作方法

        clear():清除文本

        send_keys(value):模拟按键输入值(追加、发送字符串、发送快捷键)

        click():单击元素(按钮、超链接、单选框、复选框)

        current_url:返回当前页面的url地址

        title:返回当前页面的标题title

        text:获取页面(提示框、警告框)显示的文本

        get_attribute(name):获取属性值:界面上展示的文本内容使用value属性名、 没有在界面展示文本内容使用innerText/textContent属性名、获取包含元素的HTML文本使用outerHTML、获取不含元素的HTML使用innerHTML

        is_dispalyed():设置该元素是否用户可见

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:bigbear
# datetime:2022/8/27 15:33
# software: PyCharm

"""
定位元素8种方式:driver.find_element(By.属性, "值").操作方法
    1、ID属性:百度文本框ID值为ke、百度一下按钮ID值为su
    1、NAME属性:百度文本框NAME值为wd
    3、CLASS_NAME属性:百度文本框CLASS值为s_ipt
    4、TAG_NAME属性:百度文本框的标签名为input,但是页面有相同标签名,所以报错
    5、LINK_TEXT属性:链接名为百度首页
    6、PARTIAL_LINK_TEXT属性:链接名包含内容有大会这些亮点
    7、XPATH属性:
        (1)绝对路径:/(根节点)、//(相对节点)、[1](标签名同名为兄弟节点、数字代表顺序、≥1、2个以上的兄弟节点需要写1)
        输入框的绝对路径(完整路径):/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input
        (2)元素属性
        输入框://input[@maxlength='255']
        (3)层级与属性结合
        百度一下按钮://form[@id='form']/span[2]/input
        (4)逻辑运算符and、or
        百度热搜第一条://a[@target='_blank' and @title='数据说话:中国经济稳定性何来?']
    8、CSS_SELECTOR属性:
        (1).class
        百度首页链接的样式:.toindex
        (2)#id
        输入框id:#kw
        (3)*
        所有元素中通过id属性选百度一下按钮:*[id='su']
        (4)element
        a元素中通过class属性选百度首页链接:a[class='toindex']
        (5)element>element
        span标签下的input标签确定输入框:span>input
        (6)element+element
        input标签后所有i标签确定输入框后的清空:input+i
        (7)[attribute=value]→[attribute^=value]以值开头、[attribute$=value]以值结尾、[attribute*=value]含有值、
    [attribute~=value]含有单独值、[attribute|=value]值右边可以有可以没有值
        class属性的值为toindex确定百度首页链接:[class='toindex']
元素的操作方法:
    driver.find_element(元素).clear():清除文本
    driver.find_element(元素).send_keys(value):模拟按键输入值
    driver.find_element(元素).click():单击元素(按钮操作、点击链接)
    driver.current_url:返回当前页面的url地址
    driver.title:返回当前页面的标题title
    driver.find_element(元素).text:获取页面(提示框、警告框)显示的文本
    driver.find_element(元素).get_attribute(name):获取属性值:界面上展示的文本内容使用value属性名、
没有在界面展示文本内容使用innerText/textContent属性名、获取包含元素的HTML文本使用outerHTML、获取不含元素的HTML使用innerHTML
    driver.find_element(元素).is_dispalyed():判断该元素是否用户可见
    driver.find_element(元素).is_enabled():判断该元素是否可用
    driver.find_element(元素).is_selected():判断该元素是否被选中(单选框、复选框)
"""
import time
from urllib import parse

from selenium import webdriver
from selenium.webdriver.common.by import By

# 创建浏览器对象
driver = webdriver.Edge()
# 跳转到百度页面
driver.get("https://www.baidu.com")
# 通过输入框的ID属性在框内输入值
driver.find_element(value="kw").send_keys("selenium")
time.sleep(1)
# 通过百度一下按钮的ID属性点击按钮
driver.find_element(By.ID, "su").click()
time.sleep(2)
# 通过输入框的NAME属性清空框内值
driver.find_element(By.NAME, "wd").clear()
time.sleep(1)
# 通过输入框的样式属性在框内输入值
driver.find_element(By.CLASS_NAME, "s_ipt").send_keys("selenium")
time.sleep(1)
# 使用tag name定位报错:selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
# driver.find_element(By.TAG_NAME, "input").click()
# time.sleep(1)
# 使用link text定位报错:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate
# element: {"method":"link text","selector":"百度首页"}。解决方法:重新编写这句代码
driver.find_element(By.LINK_TEXT, "百度首页").click()
time.sleep(1)
# driver.find_element(By.PARTIAL_LINK_TEXT, "中国网络文明大会这些亮点别错过").click()
driver.find_element(By.PARTIAL_LINK_TEXT, "文明建设").click()
time.sleep(1)

# 获取最新的窗口句柄列表,切换到当前窗口
driver.switch_to.window(driver.window_handles[-1])

# xpath-绝对路径:/(根节点)、//(相对节点)、[1](标签名同名为兄弟节点、数字代表顺序、≥1、2个以上的兄弟节点需要写1)
driver.find_element(By.XPATH, "/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input").clear()
time.sleep(1)
# xpath-元素属性
driver.find_element(By.XPATH, "//input[@maxlength='255']").send_keys("selenium")
time.sleep(1)
# xpath-层级与属性结合
driver.find_element(By.XPATH, "//form[@id='form']/span[2]/input").click()
time.sleep(2)
# xpath-逻辑运算符
driver.find_element(By.XPATH, "//a[@target='_blank' and @title='数据说话:中国经济稳定性何来?']").click()
time.sleep(1)

# 获取最新的窗口句柄列表,切换到当前窗口
driver.switch_to.window(driver.window_handles[-1])

# 输出当前页面的url地址
url = driver.current_url
# urlencode():将中文字典转换为url编码
wd = parse.urlencode({"wd": "数据说话:中国经济稳定性何来?"})
# urlparse:将URL解析成ParseResult对象(协议(scheme)、域名(netloc)、路径(path)、路径参数(params)、查询参数(query)、片段(fragment))
# parse_qs:将查询参数转换为字典格式
wd_cn = parse.parse_qs(parse.urlparse(url).query)['wd']
# unquote():将url编码转换为中文
cn_wd = parse.unquote("".join(wd_cn))
# 判断页面url中搜索文本参数、页面标题是否一致
if url.find(wd) and (cn_wd[:4] == driver.title[:4]):
    print(f"{driver.title}---{url}")
else:
    print("没有跳转到今日热搜第一条:数据说话:中国经济稳定性何来?")

# 获取页面文本信息
text = driver.find_element(By.CSS_SELECTOR, "#tsn_inner > div:nth-child(2) > span").text
print(f"text:{text}")

# 获取属性值
value = driver.find_element(By.ID, "kw").get_attribute("value")
print(f"get_attribute---{value}")
value0 = driver.find_element(By.ID, "su").get_attribute("class")
print(f"get_attribute---class={value0}")

# 判断元素是否用户可见、是否可用
whether = driver.find_element(By.ID, "su").is_displayed()
whether0 = driver.find_element(By.ID, "su").is_enabled()
if whether and whether0:
    print("百度一下按钮显示可用")
else:
    print("百度一下按钮显示失败")

# CSS选择器(class选择器):.class
driver.find_element(By.CSS_SELECTOR, ".toindex").click()
time.sleep(1)
# CSS选择器(id选择器):#id
driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("selenium")
time.sleep(1)
# CSS选择器(所有):*
driver.find_element(By.CSS_SELECTOR, "*[id='su']").click()
time.sleep(2)
# CSS选择器(某个元素或某个标签名):element
driver.find_element(By.CSS_SELECTOR, "a[class='toindex']").click()
time.sleep(1)
# CSS选择器(父元素下的所有的某元素):element>element
driver.find_element(By.CSS_SELECTOR, "span > input").send_keys("selenium")
time.sleep(1)
# CSS选择器(同级元素后的所有的某元素):element+element
driver.find_element(By.CSS_SELECTOR, "input + i").click()
time.sleep(1)
# CSS选择器(选择某个键值):[attribute=value]
driver.find_element(By.CSS_SELECTOR, "[class='toindex']").send_keys("selenium")
time.sleep(1)
# 关闭当前窗口
driver.close()
time.sleep(1)
# 退出驱动程序和每个相关窗口
driver.quit()

        二、浏览器操作

        1、控制窗口大小

        set_window_size(width,height) #设置窗口大小

        minimize_window() #窗口最小化

        maximize_window() #窗口最大化

        2、控制后退、前进

        back() #回退到上一个页面

        forward() #前进到下一个页面

        3、模拟浏览器刷新

        refresh() #刷新页面

        4、截屏

        save_screenshot("保存地址\\图片名.图片格式")

        get_screenshot_as_file("保存地址/图片名.图片格式")

        5、模拟关闭

        close() #关闭当前窗口

        quit() #退出驱动程序和每个相关窗口 


        三、鼠标、键盘操作

        1、鼠标

        ActinoChains(driver) #常用语模仿鼠标的行为,如单击、双击、拖拽等行为。都是针对页面元素进行操作

        context_click() #右击

        dpuble_click() #双击

        drag_and_drop() #拖动

        move_to_element() #鼠标悬停

        perform() #执行所有ActionChains中存储的行为

        2、键盘

        Keys() #模仿键盘行为,如单键、组合键,多次行为* num

        Keys.BACK_SPACE  #删除键

        Keys.SPACE  #空格键

        Keys.TAB  #制表键

        Keys.ESCAPE  #ESC键

        Keys.ENTER  #回车键

        Keys.CONTROL, 'A'  #ctrl+A|C|X|V:全选、复制、剪切、粘贴

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:bigbear
# datetime:2022/8/29 19:53
# software: PyCharm

"""
浏览器的操作方法:
    driver.set_window_size(width=值,height=值)  # 设置窗口大小
    driver.minimize_window()  # 窗口最小化
    driver.maximize_window()  # 窗口最大化
    driver.back()  # 回退到上一个页面
    driver.forward()  # 前进到下一个页面
    driver.refresh()  # 刷新页面
    driver.save_screenshot("保存地址\\图片名.图片格式")  # 截屏
    driver.get_screenshot_as_file("保存地址/图片名.图片格式")  # 截屏
    driver.switch_to.window(driver.window_handles[列表下标])  # 获取句柄列表,切换到某个窗口
    driver.close()  # 关闭当前窗口
    driver.quit()  # 退出驱动程序和每个相关窗口
鼠标的操作方法:
    ActinoChains(driver)  # 常用于模仿鼠标的行为,如单击、双击、拖拽等行为
    perform()  # 执行所有ActionChains中存储的行为
    ActionChains(driver).context_click(元素).perform()  # 右击
    ActionChains(driver).double_click(元素).perform()  # 双击
    ActionChains(driver).drag_and_drop(来源, 目标).perform()  #拖动
    ActionChains(driver).move_to_element(元素).perform()  # 鼠标悬停
键盘的操作方法:
    Keys()  # 模仿键盘行为,如单键、组合键,多次行为* num
    Keys.BACK_SPACE  # 删除键
    Keys.SPACE  # 空格键
    Keys.TAB  # 制表键
    Keys.ESCAPE  # ESC键
    Keys.ENTER  # 回车键
    Keys.CONTROL, 'A'  # ctrl+A|C|X|V:全选、复制、剪切、粘贴
"""
import time

from selenium import webdriver
from selenium.webdriver import ActionChains, Keys
from selenium.webdriver.common.by import By

# 创建浏览器对象
driver = webdriver.Edge()
# 跳转到百度页面
driver.get("http://news.baidu.com")
# 通过判断对需要留存的页面进行截屏
driver.save_screenshot(r"..\screenshot\test_driver.png")
# 窗口最大化
driver.maximize_window()
time.sleep(1)
# 通过判断对需要留存的页面进行截屏
driver.get_screenshot_as_file("../screenshot/test_driver_1.png")
# 窗口最小化
driver.minimize_window()
time.sleep(1)
# 通过判断对需要留存的页面进行截屏
driver.get_screenshot_as_file("{}.{}".format("..\\screenshot\\test_driver_2", "png"))
# 设置窗口大小
driver.set_window_size(1280, 1000)
time.sleep(1)
# 通过CSS定位器中的样式定位到百度首页并跳转
driver.find_element(by=By.CSS_SELECTOR, value="#usrbar > ul > li:nth-child(4) > a").click()
# 获取页面中的设置元素
set_ddlist = driver.find_element(value="s-usersetting-top")
# 鼠标悬停到设置上显示不同设置
ActionChains(driver).move_to_element(set_ddlist).perform()
time.sleep(0.5)
# 获取页面中的文本框元素
text_box = driver.find_element(value="kw")
# 鼠标右击文本框显示文本框操作菜单
ActionChains(driver).context_click(text_box).perform()
time.sleep(0.5)
# 获取换一换元素
hyh = driver.find_element(by=By.CSS_SELECTOR, value=".hot-refresh-text")
# 双击换一换切换百度热搜
ActionChains(driver).double_click(hyh).perform()
time.sleep(1)
# 获取百度热搜第4条内容(第2行第2列)
baidu_logo = driver.find_element(by=By.XPATH, value="//*[@id='hotsearch-content-wrapper']/li[4]/a/span[2]")
# 将热搜内容拖拽到文本框中
ActionChains(driver).drag_and_drop(baidu_logo, text_box).perform()
time.sleep(0.5)
# 在文本框中输入内容
text_box.send_keys("selenium")
time.sleep(0.5)
# 全选文本框内容
text_box.send_keys(Keys.CONTROL, 'A')
time.sleep(0.5)
# 复制文本框内容
text_box.send_keys(Keys.CONTROL, 'C')
time.sleep(0.5)
# 剪切文本框内容
text_box.send_keys(Keys.CONTROL, 'X')
time.sleep(0.5)
# 粘贴文本框内容
text_box.send_keys(Keys.CONTROL, 'V')
time.sleep(0.5)
# 删除文本框内容的最后一个字
text_box.send_keys(Keys.BACK_SPACE)
time.sleep(0.5)
# 文本框内容最后添加空格
text_box.send_keys(Keys.SPACE)
time.sleep(0.5)
# 退出文本框预测内容
text_box.send_keys(Keys.ESCAPE)
time.sleep(0.5)
# 切换光标到资讯
text_box.send_keys(Keys.TAB * 2)
time.sleep(0.5)
# 通过回车键进行搜索
text_box.send_keys(Keys.ENTER)
time.sleep(1)
# 回退到上一个页面
driver.back()
time.sleep(1)
# 前进到下一个页面
driver.forward()
time.sleep(1)
# 获取最新的窗口句柄列表,切换到当前窗口
driver.switch_to.window(driver.window_handles[-1])
# 关闭当前窗口
driver.close()
# 关闭驱动程序和所有窗口
driver.quit()

 上述代码中的三张截图效果展示

自学Python+Selenium自动化测试_第1张图片

自学Python+Selenium自动化测试_第2张图片

自学Python+Selenium自动化测试_第3张图片


        四、警告窗口处理

        1、在WebDriver中处理JavaScript所生成的警告模式窗口(alert警告框、confirm确认框、prompt提示框

        模式窗口:不关闭此窗口,其他操作无法进行

        非模式窗口:此窗口不影响其他操作进行

        2、从浏览器窗口切换到警告窗口

        alert = driver.switch_to.alert  #临时切换到警告

        confirm = driver.witch_to.alert  #临时切换到确认框

        prompt = driver.witch_to.alert  #临时切换到提示框

        3、对警告窗口操作

        msg = alert.text  #返回窗口中的文本信息

        alert.accept()  #接受现有警告窗口(点击确定按钮)

        alert.dismiss()  #放弃现有警告窗口(点击取消按钮)

        prompt.send_keys()  #发送文本至警告窗口(仅提示框)


        五、多窗口、多表单处理

        1、多窗口

        list = driver.window_handles #获取窗口句柄列表

        driver.switch_to.window(driver.window_handles[列表下标]) #获取句柄列表,切换到某个窗口

        2、多表单

        frame、iframe表单内嵌页面上的元素无法直接定位

        driver.switch_to.frame("frame_name") #通过name属性

        driver.switch_to.frame(1) #通过frame、iframe索引

        driver.switch_to.frame(driver.find_elements(By.TAG_NAME, "iframe")[0]) #通过frame、iframe表单元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:bigbear
# datetime:2022/8/30 19:09
# software: PyCharm

"""
多表单处理:
    frame、iframe表单内嵌页面上的元素无法直接定位
    driver.switch_to.frame("frame_name") # 通过name属性
    driver.switch_to.frame(1) # 通过frame、iframe索引
    driver.switch_to.frame(driver.find_elements(By.TAG_NAME, "iframe")[0) # 通过frame、iframe表单元素
"""
import time

from selenium import webdriver
from selenium.webdriver.common.by import By

# 创建浏览器对象
driver = webdriver.Edge()
driver.set_window_size(1180, 1000)
# 跳转到百度页面
driver.get("https://www.qq.com/")
# 点击邮箱图表进入邮箱登录界面
driver.find_element(by=By.LINK_TEXT, value="Qmail").click()
# 多窗口处理:通过窗口句柄切换到当前QQ邮箱页面
driver.switch_to.window(driver.window_handles[-1])
# 多表单处理:通过name属性切换到frame、iframe表单内嵌页面
# driver.switch_to.frame("login_frame")
# 多表单处理:通过索引切换到frame、iframe表单内嵌页面(微信和QQ登录各有一个iframe表单)
# driver.switch_to.frame(1)
# 多表单处理:通过frame、iframe表单元素切换到frame、iframe表单内嵌页面(微信和QQ登录各有一个iframe表单)
driver.switch_to.frame(driver.find_elements(By.TAG_NAME, "iframe")[-1])
time.sleep(0.5)
# 输入QQ邮箱和密码
driver.find_element(value="u").send_keys("[email protected]")
time.sleep(0.5)
driver.find_element(value="p").send_keys("123456")
time.sleep(0.5)
# 点击登录
driver.find_element(value="login_button").click()
time.sleep(0.5)
# 关闭程序和窗口
driver.quit()


        六、时间等待

        1、强制等待

        time.sleep(5) #线程等待固定时间5秒

        2、隐式等待

        driver.implicitly_wait(time_to_wait) #智能等待(全局、优先于显式等待、定位到元素直接执行、超时则抛出异常、适用于加载较慢的页面)、time_to_wait最大等待时间(此阶段会不断刷新页面)

        3、显式等待

        wait.WebDriverWait(driver, timeout, poll_frequency=0.5).until(method, info) #等待某个元素的出现或某个元素的可点击、超时则抛出异常、timeout最长等待时间30秒、poll_frequency默认每隔0.5秒检测一次、expected_conditions判断条件alert_is_present页面存在警告框、presence_of_element_located()页面存在的元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:bigbear
# datetime:2022/8/30 10:12
# software: PyCharm

"""
警告窗口处理:
    (1)在WebDriver中处理JavaScript所生成的警告模式窗口(alert警告框、confirm确认框、prompt提示框)
    模式窗口:不关闭此窗口,其他操作无法进行
    非模式窗口:此窗口不影响其他操作进行
    (2)从浏览器窗口切换到警告窗口
    alert = driver.switch_to.alert  # 临时切换到警告框
    confirm = driver.witch_to.alert  # 临时切换到确认框
    prompt = driver.witch_to.alert  # 临时切换到提示框
    (3)对警告窗口操作
    msg = alert.text  # 返回窗口中的文本信息
    alert.accept()  # 接受现有警告窗口(点击确定按钮)
    alert.dismiss()  # 放弃现有警告窗口(点击取消按钮)
    prompt.send_keys()  # 发送文本至警告窗口(仅提示框)
时间等待:
    (1)强制等待
    time.sleep(5) #线程等待固定时间5秒
    (2)隐式等待
    driver.implicitly_wait(time_to_wait) #智能等待(全局、优先于显式等待、定位到元素直接执行、超时则抛出异常)、time_to_wait最大等待时间(此阶段会不断刷新页面)
    (3)显式等待
    wait.WebDriverWait(driver, timeout, poll_frequency=0.5).until(method, info)
    #等待某个元素的出现或某个元素的可点击、超时则抛出异常、timeout最长等待时间30秒、poll_frequency默认每隔0.5秒检测一次、
expected_conditions判断条件、alert_is_present页面存在警告框、presence_of_element_located()页面存在的元素
"""
import time

from selenium import webdriver
from selenium.webdriver.common.by import By
# from selenium.webdriver.support import wait, expected_conditions  # 显示等待时导入的包

# 创建浏览器对象
driver = webdriver.Edge()
# 隐式等待:智能等待、time_to_wait最大等待时间
driver.implicitly_wait(5)
# 跳转到百度页面
driver.get("https://www.selenium.dev/zh-cn/documentation/webdriver/browser/alerts/")
# 显示等待:timeout最长等待时间30秒、poll_frequency默认每隔0.5秒检测一次、expected_conditions判断条件、alert_is_present是页面存在警告框
# wait.WebDriverWait(driver, 30, ignored_exceptions=None).until(expected_conditions.presence_of_element_located(
#     By=ID, "alerts-警告框"), "timeout")
# 点击查看样例警告框
driver.find_element(by=By.LINK_TEXT, value="查看样例警告框").click()
# 强制等待:固定时间1秒
time.sleep(1)
# 临时将窗口对象从浏览器窗口切换到警告框
alert = driver.switch_to.alert
# 获取警告框中的文本信息
alert_msg = alert.text
print(f"警告信息:{alert_msg}")
# 点击警告框确定按钮
alert.accept()
time.sleep(1)

# 点击查看样例确认框
driver.find_element(by=By.LINK_TEXT, value="查看样例确认框").click()
time.sleep(1)
# 临时将窗口对象从浏览器窗口切换到确认框
confirm = driver.switch_to.alert
# 获取确认框中的文本信息
confirm_msg = confirm.text
print(f"确认信息:{confirm_msg}")
# 点击确认框取消按钮
confirm.dismiss()
time.sleep(1)

# 点击查看样例提示框
driver.find_element(by=By.LINK_TEXT, value="查看样例提示框").click()
time.sleep(1)
# 临时将窗口对象从浏览器窗口切换到提示框
prompt = driver.switch_to.alert
# 获取提示框中的文本信息
prompt_msg = prompt.text
print(f"提示信息:{prompt_msg}")
# 向提示框发送文本信息、注意:这里不起作用
prompt.send_keys("简单测试一下可以吗")
time.sleep(1)
# 点击警提示框确定按钮
prompt.accept()
time.sleep(1)

# 退出程序关闭窗口
driver.close()

        愿你我都能为中华民族的伟大复兴尽一份绵薄力量,让中华文化的根扎根在中国这片绿水青山之上,让新一代中华儿女传承与发扬!!!

---无名之辈


以上内容均是本人自学,当然是有网上公布的内容,如有冒犯,请留言,立即改正,谢谢!


        看完要是觉得对自己有用,动一下您那根金色的会一指禅的右手食指,按一下您的鼠标左键,在对应的那个位置点个赞,亦或者在评论区留下您的绝顶好句,亦或者收藏在您的收藏夹里,再走也不迟嘛!您说要不要得!谢谢您的阅读和赞赏!

你可能感兴趣的:(#,web自动化测试,自动化,测试用例,python,selenium)