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:PyCharmProjectTestFrameworkdriverschromedriver.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 handles = driver.getWindowHandles();
获取句柄有多中方式,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());
    }
 }
原文地址:https://www.cnblogs.com/zhaobowen/p/14106957.html