pythonweb自动化如何定位div标签定位div表情_Python+selenium实现Web自动测试中各元素的定位,Pythonselenium,自动化,各种...

from selenium import webdriver

import time

dr = webdriver.Chrome()

# 打开登陆163邮箱的网页

dr.get('http://mail.163.com/')

# 将浏览器窗口最大化

dr.maximize_window()

# 1、id

btn = dr.find_element_by_id('lbNormal').click()

# 2、找到邮箱账号登录框对应的iframe#跳入框架

# 1、xpath 绝对路径

dr.switch_to.frame(dr.find_element_by_xpath("/html/body/div[2]/div[3]/div/div[3]/div[4]/div[1]/div/iframe")) # 跳入框架

# 2、xpath 相对路径有些变化的不适合用

# dr.switch_to.frame(dr.find_element_by_xpath('//*[@id="x-URS-iframe1587572206248.1785"]'))

# 3、使用元素名+属性值常用的

# dr.switch_to.frame(dr.find_element_by_xpath("//*[@frameborder='0']"))

# 4、使用元素名+包含部分属性值

# dr.find_element_by_xpath("//*[contains(@name,'email')]").send_keys('123456789')#获取手机号输入框

# 5、通过元素名+元素的文本内容获取超链接,注意空格不建议用

# dr.find_element_by_xpath("//*[text()='忘记密码?']").click()

# 6、通过元素名定位获取页面所有的input元素 和 tag_name 差不多;仅限第一个元素

# driver.find_element_by_xpath('//input').send_keys("666888")

# 7、 通过元素名+索引定位

# driver.find_element_by_xpath('//div[1]/input').send_keys("666888")

# 3、name

dr.find_element_by_name('email').send_keys('15890501589')

# 4、使用tag_name 标签名

# dr.find_element_by_tag_name('input').send_keys('15890501589')

# 找到密码输入框 输入自己的邮箱密码

# 5、class_name 如果有空格,可以用空格前 中间 后面的部分,但是这些属性值是唯一的

dr.find_element_by_class_name('dlpwd').send_keys('123456')

# 找到登陆按钮

dr.find_element_by_id('dologin').click()

dr.implicitly_wait(3) # 智能等待

# 错误的密码

false_password = dr.find_element_by_class_name("ferrorhead").text

if false_password == '帐号或密码错误' :

print(false_password)

# 清除按钮

dr.find_element_by_xpath('/html/body/div[2]/div[2]/div[2]/form/div/div[3]/div[3]/div').click()

else :

print('密码正确')

# 断言

dr.switch_to.default_content() # 跳出框架

dr.implicitly_wait(2) # 智能等待

real_result = dr.find_element_by_class_name('nui-tree-item-text').text

print(real_result)

if real_result == "收件箱":

print('登录成功')

else:

print('执行失败')

dr.implicitly_wait(2) # 智能等待

# 6、link_text超链接内容

dr.find_element_by_link_text('升级VIP').click()

# 7、partial_link_text 部分文本

dr.find_element_by_partial_link_text('VIP').click()

# css_selector

# 1、css_selectorid #表示

# dr.find_element_by_css_selector('#lbNormal').click()

# 2、标签+id

# dr.find_element_by_css_selector('div#lbNormal').click()

# # 3、classname .表示

# # dr.find_element_by_css_selector('.nui-tree-item-text').click()

# # 4、标签+classname .表示

# dr.find_element_by_css_selector('span.nui-tree-item-text').click()

# # 5、标签+属性和属性值

# btn = dr.find_element_by_css_selector("span[title='收件箱']").click()

#

# # 6、表签+属性和属性值的方式:模糊匹配

# # 1、匹配属性值的前部分^

# dr.find_element_by_css_selector("span[title^='收']").click()

# # 2、匹配属性值的前部分*

# dr.find_element_by_css_selector("span[title^='件']").click()

# # 3、匹配属性值的后部分$

# dr.find_element_by_css_selector("span[title^='箱']").click()

#

# # 7、子孙元素方式(和xpath路径类似)

# dr.find_element_by_css_selector("div#dvNavTree>ul>li>div").click()

# dr.find_element_by_css_selector("div#dvNavTree div").click()

# 8、句柄页面的唯一标识,相当于页面的省份证号

dr.find_element_by_link_text("升级VIP").click()

print("当前页面的title", dr.title)

print("当前页面的句柄", dr.current_window_handle) # 打印当前的句柄

list_handle = dr.window_handles # 获取所有的句柄2个句柄

print(type(list_handle))

print(list_handle)

# dr.switch_to_window(list_handle[1])

for handle in list_handle:

if handle != dr.current_window_handle:

dr.switch_to_window(handle)

print("当前页面的title", dr.title)

print("当前页面的句柄", dr.current_window_handle)

# time.sleep(3)

# dr.quit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值