web自动化测试单排日记-2020/4/15-webDriver-元素与浏览器操作

一.元素操作

在这里插入图片描述

获取文本内容(既开闭标签之间的内容)element.text
获取属性值(获取element元素的value属性的值)element.get_attribute(value)

# 导包
from selenium import webdriver
from time import sleep
 # 开浏览器
driver = webdriver.Chrome()

# 访问百度
url = 'http://www.baidu.com'
driver.get(url)

# 定位输入框
el = driver.find_element_by_id('kw')
# 输入关键字
el.send_keys('selenium')

# 定位搜索按钮
el_sub = driver.find_element_by_id('su')
el_sub.click()

el_list = driver.find_elements_by_css_selector('div[id="content_left"]>div>h3>a')

for i in el_list:
    print("标题:",i.text,"内容:",i.get_attribute("href"))

sleep(5)
driver.close()

在这里插入图片描述

二.浏览器操作

在这里插入图片描述

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("https://wwww.baidu.com")

#窗口最大化
driver.maximize_window()

driver.find_element_by_css_selector("#kw").send_keys("测试")
driver.find_element_by_css_selector("#su").click()

sleep(3)
#后退
driver.back()
sleep(3)
#前进
driver.forward()
sleep(3)

#刷新界面
driver.refresh()

#关闭所有界面
sleep(4)
driver.quit()

在这里插入图片描述

三.窗口的操作

1)获取所有窗口的句柄handles = driver.window_handlers
调用该方法会得到一个列表,在selenium运行过程中的每一个窗口都有一个对应的值存放在里面。

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()

driver.get("https://www.baidu.com")
driver.find_element_by_css_selector("#kw").send_keys("selenium")
driver.find_element_by_css_selector("#su").click()

print("点击之前:",driver.window_handles)
sleep(5)
driver.find_element_by_xpath('//*[@id="3"]/h3/a').click()
sleep(5)
print("点击之后:",driver.window_handles)


在这里插入图片描述

2)通过窗口的句柄进入的窗口driver.switch_to.window(handles[n])
通过窗口句柄激活进入某一窗口

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()

driver.get("https://www.baidu.com")
driver.find_element_by_css_selector("#kw").send_keys("selenium")
driver.find_element_by_css_selector("#su").click()

sleep(5)
driver.find_element_by_xpath('//*[@id="3"]/h3/a').click()
sleep(5)
elements=driver.window_handles
print("点击之后:",elements)
#切换到第一个窗口
driver.switch_to_window(elements[0])

在这里插入图片描述

四.表单/框架的操作

1)什么是多表单?
实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面
在这里插入图片描述

2)处理方法
1. 直接使用id值切换进表单
driver.switch_to.frame(value)
2. 定位到表单元素,再切换进入
el = driver.find_element_by_xxx(value)
driver.switch_to.frame(el)

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()

driver.get("https://www.126.com/")

driver.find_element_by_xpath('//*[@id="lbNormal"]').click()

#定位到表单元素
iframe = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div/div[3]/div[4]/div[1]/div/iframe")
#再切换进入
driver.switch_to_frame(iframe)

#输入账号密码,点击登录
driver.find_element_by_name("email").send_keys("brontesisters")
driver.find_element_by_name("password").send_keys("1847ceab")
driver.find_element_by_xpath('//*[@id="dologin"]').click()

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值