欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

3.6 Web自动化 ---- 常用API(WebElement 和WebDriver对象常用)

程序员文章站 2024-03-18 19:42:16
...

一、 WebElement对象API常用API

1.  常用基本API

3.6 Web自动化 ---- 常用API(WebElement 和WebDriver对象常用)

2. 键盘输入操作

3.6 Web自动化 ---- 常用API(WebElement 和WebDriver对象常用)

3. python代码练习

import time
from SeleniumWeb import openBrowser
from selenium.webdriver.common.by import By
#  键盘使用
from selenium.webdriver.common.keys import Keys
driver = openBrowser.openBrowser("Chrome")
driver.get("https://www.baidu.com")
time.sleep(2)
input_ele = driver.find_element(By.ID, "kw") # 百度输入框元素
button_ele = driver.find_element(By.ID, "su")  # 百度一下按钮
# 1. 输入框内容清除: clear()
input_ele.clear()
# 2. 输入框输入内容: sendKey()
input_ele.send_keys("鬼怪")
# 3. 点击事件: click()
# button_ele.click()
time.sleep(2)
# 4. 获取元素标签名
print("tag属性值:" + input_ele.tag_name)
# 5. 获取元素其他属性值: 不支持输入tag和text,否则返回None,元素属性不存再也会返回None
print("元素id=" + input_ele.get_attribute("id"))
# 6. 获取文本值
print("文本内容:"+ button_ele.text)
#  7. 查看元素是否可见,结果:True/False 针对不可见元素是不能操作的,否则会报错:element is not visible
print("百度一下按钮是否显示:" + button_ele.is_displayed())
#  8. 表单提交,一般用于接口form表单元素提交
# button_ele.submit()



# 4. 键盘常用操作
# input_ele.send_keys(Keys.CONTROL, "a")   # 4.1 全选:ctrl+a
# input_ele.send_keys(Keys.CONTROL, "x")   # 4.2 剪贴:ctrl+x
# input_ele.send_keys(Keys.CONTROL, "c")   # 4.3 复制:ctrl+c
# input_ele.send_keys(Keys.CONTROL, "v")   # 4.4 粘贴:ctrl+v
# input_ele.send_keys(Keys.CONTROL, "v")
# input_ele.send_keys(Keys.ENTER)          # 4.5 回车:Enter
# input_ele.send_keys(Keys.BACK_SPACE)     # 4.6 删除:BACK_SPACE或者BACKSPACE
# input_ele.send_keys(Keys.SPACE)          # 4.7 空格:SPACE

time.sleep(3)
openBrowser.closeBrowser(driver)

4. java代码练习

public class WebElementAPI {
	public static void main(String[] args) {
		// 元素常用API
		WebDriver driver = OpenBrowser.openBrower("Chrome");
		driver.get("https://www.baidu.com");
		WebElement input_ele = driver.findElement(By.id("kw")); // 百度输入框元素
		WebElement button_ele = driver.findElement(By.id("su")); // 百度一下按钮
		input_ele.clear(); // 1. 输入框内容清除: clear()
		input_ele.sendKeys("鬼怪"); // 2. 输入框输入内容: sendKey()
		button_ele.click();  // 3. 点击事件: click()
		try {
			Thread.sleep(3000); // sleep 3秒
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 4. 获取元素标签名
		System.out.println("标签名是:"+ input_ele.getTagName());
		// 5. 获取元素其他属性值:不支持输入tag和text,否则返回null,元素属性不存再也会返回null
		System.out.println("id属性是:"+input_ele.getAttribute("id"));
        // 6. 获取元素文本值
		System.out.println("百度一下按钮的文本值:"+button_ele.getText());
		// 7. 元素是否可见: 结果true/false,针对不可见元素是不能操作的,否则会报错:element is not visible
		System.out.println("百度一下按钮是否显示:"+button_ele.isDisplayed());
        // 8. 提交表单: submit()
		// form_ele.submit
		button_ele.submit();

		// 9. 键盘常见操作 
//		input_ele.sendKeys(Keys.CONTROL,"a"); // 4.1  CTRL+a  全选 
//		input_ele.sendKeys(Keys.CONTROL,"x"); // 4.2 剪切 : CTRL +x
//		input_ele.sendKeys(Keys.CONTROL,"c"); // 4.3 复制 : CTRL +c
//		input_ele.sendKeys(Keys.CONTROL,"v"); 
//		input_ele.sendKeys(Keys.CONTROL,"v"); // 4.4 粘贴 : CTRL +v
//		input_ele.sendKeys(Keys.ENTER);       // 4.5 回车 : ENTER
//		input_ele.sendKeys(Keys.BACK_SPACE);  // 4.6 删除 : BACK_SPACE
//		input_ele.sendKeys(Keys.SPACE);       // 4.7 空格 :SPACE


		OpenBrowser.closeBrower(driver);

	}

}

 

二、 WebDriver对象常用操作API

1.   常用API汇总

3.6 Web自动化 ---- 常用API(WebElement 和WebDriver对象常用)3.6 Web自动化 ---- 常用API(WebElement 和WebDriver对象常用)

2. 基于python练习代码

# -*-coding:utf8-*-
"""
=========================================================
@Description:WebDriver对常用API
@Author: Lujier           @Iime: 2020/9/15
@File: WebDriverAPI.py         @Software  :IntelliJ IDEA
========================================================
"""
import time
from SeleniumWeb import openBrowser
from selenium.webdriver.common.by import By


driver = openBrowser.openBrowser("Chrome")
#  1. 访问指定url
driver.get("https://www.baidu.com")
#  2. 获取当前访问的url
print("当前访问url: " + driver.current_url)
# 3. 获取当前页面的title
print("当前页面标题: " + driver.title)
# 4. 获取当前页面源代码
source_codes = driver.page_source
driver.find_element(By.XPATH, "//a[contains(text(),'新闻')]").click()  # 点击则会出现新窗口,显示当前天气
time.sleep(2)
# 5. 获取窗口
#    5.1获取当前窗口
print("当前窗口:" + driver.current_window_handle)
#    5.2 获取所有窗口
print("所有窗口:{}".format(driver.window_handles))
time.sleep(3)
driver.get("https://www.12306.cn/index/")
# 6. 页面操作
#    6.1 刷新当前页面
driver.refresh()
time.sleep(3)

#    6.2 浏览器回退操作
driver.back()
time.sleep(3)

#    6.3 浏览器前进操作
driver.forward()
time.sleep(3)

# 7. 窗口操作
#   7.1 窗口最大化
driver.maximize_window()
#   7.2 获取窗口大小
driver.get_window_size()
#   7.3 获取窗口位置:左上角的坐标
print("窗口位置:{}".format(driver.get_window_position()))
#   7.4 设置位置
driver.set_window_position(x=8,y=8)
#   7.5 设置窗口大小
driver.set_window_size(width=10, height=30)
# 5. 关闭当前窗口
driver.close()
# 6. 关闭驱动对象以及相关的窗口
driver.quit()

3. 基于Java练习代码

package com.webAuto.eleLocBase;

import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.WebDriver.Window;

import com.lujier.demo.OpenBrowser;

/**
* TODO
*   @File:  WebDriverAPI.java
 *  @Author: Lujier          @SINCE: 2020年9月15日 下午12:59:44
 * */
public class WebDriverAPI {
	public static void main(String[] args) throws InterruptedException {
		// WebDriver常用API
		WebDriver driver = OpenBrowser.openBrower("Chrome");
//		1. 访问指定url
		driver.get("https://www.baidu.com");
//		2. 获取当前访问url
		System.out.println("当前访问url = " + driver.getCurrentUrl());
//		3. 获取当前页面的title
		System.out.println("当前页面标题: " + driver.getTitle());
//		 4. 获取当前页面源代码
		String source_codes = driver.getPageSource();
		driver.findElement(By.xpath("//a[contains(text(),'新闻')]")).click();  // 点击则会出现新窗口,显示新闻
		Thread.sleep(3000);
//		 5. 获取窗口
//		    5.1获取当前窗口
		System.out.println("当前窗口:" + driver.getWindowHandle());
//		    5.2 获取所有窗口:Set<String],内部输出toString
		System.out.println("所有窗口:" + driver.getWindowHandles());


//		 6. 获取navigate对象: 关于浏览器的基本操作,大部分由navigate对象提供
		Navigation navigate = driver.navigate();
//		     6.1 访问指定界面
		 navigate.to("https://www.12306.cn/index/");
	     Thread.sleep(3000);
//		     6.2 刷新当前页面
		 navigate.refresh();
	     Thread.sleep(3000);

//		     6.3 浏览器回退操作
		 navigate.back();
	     Thread.sleep(3000);
//		     6.4 浏览器前进操作
		 navigate.forward();

		 
//		 7. 获取Window对象
		 Window window = driver.manage().window();
//		   7.1  窗口最大化
		 window.maximize();
//		   7.2 获取窗口位置
		 window.getPosition().getX();    // 左上角坐标
		 window.getPosition().getY();  
//         7.3 获取窗口大小
		 window.getSize();
		 window.getSize().getWidth(); // 宽度
		 window.getSize().getHeight(); // 宽度
		 Point targetPosition = new Point(50,50);
//		   7.4  设置位置
		 window.setPosition(targetPosition);
//		   7.5 设置窗口大小
		 Dimension targetSize = new Dimension(800,600);
		 window.setSize(targetSize); 
		 
//		 5. 关闭当前窗口
		driver.close();
//		 6. 关闭驱动对象以及相关的窗口
		driver.quit() ;

	}
}