Python +Selenium UI自动化学习记录一

一、 元素定位
1.1 八个定位策略
id、name、class、tag、link、patial_link、path、css
1.2 Xpath基本语法
  • /(开头)根路径
  • //(开头、中间) 任意层级路径

  • 表示任意元素

  • @ 表示属性筛选

  • . 表示本级

  • .. 表示上级

1.3 Xpath定位函数

。text 获取元素内的文本 【精确匹配】

$x('//a[text()="新闻"]')

。contains 任意位置包含 【模糊匹配】

("//input[contains(@id,'fuck')]"))

。start_with 开头相同 【半模糊匹配】

$x('//a[start_with(text(),"新闻")]')

。轴定位法:parent,child, ancestor,following

1.4 元素交互
1.4.1 交互属性方法
click()                     #点击
clear()                    #清空内容
send_keys()           #输入内容
get_attribute()      #获取HTML元素的属性值【如输入框当前的内容】
# 获取输入框内的文本内容
res_text = browser.find_element(By.XPATH, "//div[@class='bs-message-notice bs-message-success']/div/div/div").text
1.4.2 三大等待
# 强制等待
time.sleep(10)
# 隐式等待
bw.implicitly_wait(10)
# 显示等待
import selenium.webdriver.support.expected_conditions as EC
# 获取结算成功提示信息并断言
locator = (By.XPATH, "//div[@class='bs-message-notice bs-message-success']/div/div/div")
        WebDriverWait(browser, 5, 1).until(EC.presence_of_element_located(locator))  
# 显示等待第一条记录是否出现
res_text = browser.find_element(By.XPATH, "//div[@class='bs-message-notice bs-message-success']/div/div/div").text
1.5 模拟键盘按键
  • 模拟Enter键

from selenium.webdriver.common.keys import Keys    
# 医生选择输入框输入医生姓名
blh= browser.find_element(By.XPATH, "//input[@id='SelectComposingTable']")
blh.send_keys("产科门诊")
blh.send_keys(Keys.ENTER)
1.6 切换iframe
  • switch_to.frame方法

  • driver.switch_to.frame(0)  # 1.用frame的index来定位,第一个是0
    driver.switch_to.frame("frame1")  # 2.用id来定位
    driver.switch_to.frame("myframe")  # 3.用name来定位
    driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))  # 4.用WebElement对象来定位
    # 切出iframe
    browser.switch_to.default_content()
1.7 定位闪现的提示信息
  • 方法:chrome开发者工具中点击sources,在弹出提示时点击暂停按钮,这样提示信息就可以一直在elements中显现,并可以正常定位,最后通过显式等待获取到定位信息,实操如下:

# 获取结算成功提示信息并断言
locator = (By.XPATH, "//div[@class='bs-message-notice bs-message-success']/div/div/div")
WebDriverWait(browser, 5, 1).until(EC.presence_of_element_located(locator))  # 显示等待第一条记录是否出现
res_text = browser.find_element(By.XPATH, "//div[@class='bs-message-notice bs-message-success']/div/div/div").text
assert res_text == "结算成功"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值