我是靠谱客的博主 大气野狼,最近开发中收集的这篇文章主要介绍3.3 Web自动化 ---- 元素定位(基本定位方式)一、基本元素定位方式:二 示例:百度界面(Chrome)三 、 python实现,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一、基本元素定位方式:
- 通过id(一般id唯一) : By.id
- 通过元素name属性来定位: By.name
- 通过元素标签名来获取元素: By.tagName
- 通过元素class属性值来定位: By.className
- 通过元素超链接的文本值来获取元素: By.linkText
- 通过元素超链接的部分文本值来获取元素: By.partialLinkText
二 示例:百度界面(Chrome)
我们需要完成的功能:
启动浏览器,进入百度,百度输入框输入:地狱使者, 点击“百度一下”按钮
三、 Java 代码实现
1. 封装的浏览器打开关闭函数功能代码如下(可忽略):
package com.lujier.demo;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public class OpenBrowser {
/**
* 打开浏览器,目前支持chrome,firefox,ie
* @param browser 浏览器
* @return WebDriver对象
*/
public static WebDriver openBrower(String browser) {
if(browser.equalsIgnoreCase("chrome")) {
// 一、 Chrome浏览器V80
System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver.exe");
ChromeDriver chromedriver=new ChromeDriver();
return chromedriver;
}else if (browser.equalsIgnoreCase("firefox")){
// 二、 火狐浏览器 V56
System.setProperty("webdriver.firefox.bin", "D:\APP_Installs\Other\Mozilla Firefox\firefox.exe");
System.setProperty("webdriver.gecko.driver", "src/test/resources/geckodriver.exe");
FirefoxDriver firefoxDriver = new FirefoxDriver();
return firefoxDriver;
}else {
// 三、IE浏览器V11: IE驱动版本与Selenium相同就好了,selenium3.14.59,驱动版本也选择3.14
System.setProperty("webdriver.ie.driver", "src/test/resources/IEDriverServer.exe");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);
InternetExplorerDriver ieDriver = new InternetExplorerDriver(capabilities);
return ieDriver;
}
}
public static void closeBrower(WebDriver driver) {
// 关闭浏览器
driver.close();
}
}
2. 启动浏览器,进入百度,百度输入框输入:地狱使者, 点击“百度一下”按钮
package com.webAuto.eleLocBase;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import com.lujier.demo.OpenBrowser;
public class BaseLocEle {
// 元素基本定位
public static void main(String[] args) {
WebDriver driver = OpenBrowser.openBrower("chrome");
// 1. ID方式定位
WebElement ele = driver.findElement(By.id("kw")); // 百度输入框元素
/**
// 2. class 方式定位
WebElement ele1 = driver.findElement(By.className("s_ipt"));
// 3. name 方式定位
WebElement ele2 = driver.findElement(By.name("wd"));
// 4. 通过标签名定位
driver.findElement(By.tagName("标签名"));
// 5. 通过超链接文本
driver.findElement(By.linkText("超链接文本"));
// 6. 通过超链接部分文本
driver.findElement(By.partialLinkText("超链接部分文本"));
// 获取存在一批有相同特性的元素,findElements返回的是一个集合
List<WebElement> = driver.findElements();
*/
ele.sendKeys("地狱使者"); // 百度输入框输入内容
driver.findElement(By.id("su")).click();; // 点击百度一下按钮
closeBrower(driver);
}
}
三 、 python实现
1. 封装的浏览器打开/关闭函数
import os
from selenium import webdriver
def open_browser(browser:str):
browser = browser.lower().strip()
driver = None
drivers_path = os.path.join(os.path.dirname(__file__),"drivers")
if browser == "chrome":
driver_path = os.path.join(drivers_path,"chromedriver.exe")
driver = webdriver.Chrome(driver_path)
elif browser == "firefox":
driver_path = os.path.join(drivers_path, "geckodriver.exe")
driver = webdriver.Firefox(driver_path)
else:
driver_path = os.path.join(drivers_path, "IEDriverServer.exe")
driver = webdriver.Ie(driver_path)
return driver
def close_browser(driver:webdriver):
driver.close()
注意
1. 元素的class属性可能会有多个
2. class属性值多个,定位时:
不建议class内容写全,如下:
ele = driver.find_element(By.CLASS_NAME, "btn self-btn bg s_btn") (python写法)
WebElement ele = driver.findElement(By.className("btn self-btn bg s_btn")); (java写法)
可以就针对一个class的一个属性值来定位:
ele = driver.find_element(By.CLASS_NAME, "self-btn") (python写法)
WebElement ele = driver.findElement(By.className "self-btn")); (java写法)
最后
以上就是大气野狼为你收集整理的3.3 Web自动化 ---- 元素定位(基本定位方式)一、基本元素定位方式:二 示例:百度界面(Chrome)三 、 python实现的全部内容,希望文章能够帮你解决3.3 Web自动化 ---- 元素定位(基本定位方式)一、基本元素定位方式:二 示例:百度界面(Chrome)三 、 python实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复