selenium获取元素信息的方法
获取元素
1.获取当前页面的Url函数
方法:current_url
实例:
driver.current_url
2.获取元素坐标
方法:location
解释:首先查找到你要获取元素的,然后调用location方法
实例:
driver.find_element_by_xpath("//*[@id='tablechart']/tbody/tr[14]/td[9]").location
3.表单的提交
方法:submit
解释:查找到表单(from)直接调用submit即可
实例:
driver.find_element_by_id("form1").submit()
4.获取CSS的属性值
方法:value_of_css_property(css_name)
实例:
driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")
5.获取元素的属性值
方法:get_attribute(element_name)
实例:
driver.find_element_by_id("sellaiyuan").get_attribute("sellaiyuan")
6.判断元素是否被选中
方法:is_selected()
实例:
driver.find_element_by_id("form1").is_selected()
7.返回元素的大小
方法:size
实例:
driver.find_element_by_id("iptPassword").size
返回值:{'width': 250, 'height': 30}
8.判断元素是否显示
方法:is_displayed()
实例:
driver.find_element_by_id("iptPassword").is_displayed()
9.判断元素是否被使用
方法:is_enabled()
实例:
driver.find_element_by_id("iptPassword").is_enabled()
10.获取元素的文本值
方法:text
实例:driver.find_element_by_id("iptUsername").text
11.元素赋值
方法:send_keys(*values)
实例:
driver.find_element_by_id("iptUsername").send_keys('admin')
注意如果是函数需要增加转义符u,eg.
driver.find_element_by_id("iptUsername").send_keys(u'青春')
12.返回元素的tagName
方法:tag_name
实例:
driver.find_element_by_id("iptUsername").tag_name
13.删除浏览器所以的cookies
方法:delete_all_cookies()
实例:
driver.delete_all_cookies()
14.删除指定的cookie
方法:delete_cookie(name)
实例:deriver.delete_cookie("my_cookie_name")
15.关闭浏览器
方法:close()
实例:driver.close()
16.关闭浏览器并且推出驱动程序
方法:quit()
实例:driver.quit()
17.返回上一页
方法:back()
实例:driver.back()
18.设置等待超时
方法:implicitly_wait(wait_time)
实例:driver.implicitly_wait(30)
19.浏览器窗口最大化
方法:maximize_window()
实例:driver.maximize_window()
20.查看浏览器的名字
方法:name
实例:drvier.name
处理弹窗
1.alert窗口处理
import time
from selenium import webdriver
"""
处理alert弹窗
"""
driver = webdriver.Chrome('F:\PyCharmProject\TestFramework\drivers\chromedriver.exe')
driver.get('file:///C:/Users/Uker/Desktop/seleniumHTML/alert.html')
time.sleep(1)
# 获取alert对话框的按钮,点击按钮,弹出alert对话框
driver.find_element_by_id('alert').click()
time.sleep(1)
# 获取alert对话框
dig_alert = driver.switch_to.alert
time.sleep(1)
# 打印警告对话框内容
print(dig_alert.text)
# alert对话框属于警告对话框,我们这里只能接受弹窗
dig_alert.accept()
time.sleep(1)
driver.quit()
2.confirm窗口处理
import time
from selenium import webdriver
"""
处理confirm对话框
"""
# 获取confirm对话框的按钮,点击按钮,弹出confirm对话框
driver.find_element_by_id('confirm').click()
time.sleep(1)
# 获取confirm对话框
dig_confirm = driver.switch_to.alert
time.sleep(1)
# 打印对话框的内容
print(dig_confirm.text)
# 点击“确认”按钮
dig_confirm.accept()
# 点击“取消”按钮
# dig_confirm.dismiss()
time.sleep(1)
driver.quit()
3.prompt窗口处理
import time
from selenium import webdriver
"""
处理prompt对话框
"""
# 获取prompt对话框的按钮,点击按钮,弹出prompt对话框
driver.find_element_by_id('prompt').click()
time.sleep(1)
# 获取prompt对话框
dig_prompt = driver.switch_to.alert
time.sleep(1)
# 打印对话框内容
print(dig_prompt.text)
# 在弹框内输入信息
dig_prompt.send_keys("Loading")
# 点击“确认”按钮,提交输入的内容
dig_prompt.accept()
time.sleep(1)
driver.quit()
鼠标
1.鼠标悬停
#处理鼠标悬停
#识别需要悬停的元素
ele = driver.find_element_by_xpath(r'/html/body/div[1]/section/header/div/div[2]/ul/li[14]/div')
#鼠标移到悬停元素上
ActionChains(driver).move_to_element(ele).perform()
常用方法
driver.getTitle();//获取标题
driver.getCurrentUrl();//获取当前页面url
driver.getPageSource();//获取页面资源
driver.switchTo().window(currentwindow);//跳转到currentwindow句柄页面
driver.manage().window().maximize();//最大化
driver.manage().addCookie(Cookie cookie);//添加删除cookie
driver.switchTo().alert();切换到alert窗口
1.获取页面
String currentwindow = driver.getWindowHandle();//获取当前页面句柄
那么如果打开了多个窗口,就需要用如下函数获取所有句柄
Set
获取句柄有多中方式,set集合迭代器Iterator、for循环 我将用两种方式分别实现
Interator <string> it = handles.iterator();
while(it.hasNext()){
handle = it.next();
if (currentwindow.equals(handle)){
//此处根据自己的条件灵活的判断。
continue;
}
WebDriver window = driver.switchTo().window(handle);//切换 注意,这里要根据你判断的条件来确定你切换的位置。请看for循环
}
for (String handle : handles){
WebDriver window = driver.switchTo().window(handle);
if (window.getTitle().equals("百度一下,你就知道")) {
System.out.println("title,url = " + window.getTitle() + ","+ window.getCurrentUrl());
}
}