selenium 页面经常改变元素_selenium用jquery改变元素属性

本文介绍如何利用jQuery与Selenium结合,改变网页元素的属性。以百度搜索为例,展示了删除ID属性并将输入框及按钮设为红色的代码实现。通过注入jQuery库,然后使用`executeScript`执行jQuery代码来操作元素。
摘要由CSDN通过智能技术生成

一、jQuery 语法

jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。

1、基础语法:

$(selector).action()

选择符(selector)即,"查询"和"查找" HTML 元素

jQuery 的 action() 执行对元素的操作

简单理解:就是选择器来操作

2、实例:

$(this).hide() - 隐藏当前元素

$("p").hide() - 隐藏所有

元素

$("p.test").hide() - 隐藏所有 class="test" 的

元素

$("#test").hide() - 隐藏所有 id="test" 的元素

特点:语法简单,好操作

二、用jquery实现思路

1、实际模拟场景:

以我们最熟悉的百度为例吧,删除百度页面的id属性,并将百度输入框及按钮都改为红色

2、引用jQuery类库

3、用jQuery代码改变元素属性

4、完整代码

import org.apache.commons.lang3.StringUtils;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.testng.annotations.Test;

/**

* selenium 引用jQuery改变页面元素属性

*

* @author longrong.lang

*/

public class LoadJQuery {

private static WebDriver driver;

/**

* 向当前页面注入JQuery,并返回加载是否成功

*

* @return

*/

public boolean injectjQuery() {

try {

String injectJQuery = "var script = document.createElement('script');"

+ "var filename = \"http://code.jquery.com/jquery-1.10.1.min.js\";"

+ "script.setAttribute(\"type\",\"text/javascript\");"

+ "script.setAttribute(\"src\", filename);"

+ "if (typeof script!='undefined'){"

+ "document.getElementsByTagName(\"head\")[0].appendChild(script);"

+ "}";

((JavascriptExecutor) driver).executeScript(injectJQuery);

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

// 判断JQuery是否加载成功

Boolean loaded = true;

String s = (String) (((JavascriptExecutor) driver)

.executeScript("return typeof jQuery"));

if (!StringUtils.trimToEmpty(s).equals("function"))

loaded = false;

return loaded;

}

@Test

public void testJQuery() {

driver = new ChromeDriver();

driver.manage().window().maximize();

driver.get("https://www.baidu.com/");

JavascriptExecutor js = (JavascriptExecutor) driver;

String changeDisplay = " $('input').removeAttr('id');";

// 删除input标签下的id属性操作

js.executeScript(changeDisplay);

js = (JavascriptExecutor) driver;

// 将百度按钮及输入框改成红色

String changeinput = "$(\"input\").attr(\"style\",\"background:red\");";

js.executeScript(changeinput);

}

}

运行结果如下:

jquery获取、改变元素属性值

//标签的属性称作元素属性,在JS里对应的DOM对象的对应属性叫DOM属性.JS里的DOM属性名有时和原元素属性名不同. //==================================操作元 ...

使用jQuery操作元素属性

在jQuery中,提供了attr函数来操作元素属性,具体如下: 函数名 说明 例子 attr(name) 取得第一个匹配元素的属性值. $("input").attr(" ...

jQuery改变元素class属性

//去掉class属性 $(this).parent('li').removeClass("prev_selected"); //去掉同兄弟的class属性. $(this).pa ...

jquery改变元素的值的函数text(),html(),val()

text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值,适合于标签中有value属性的标签. 代码: ...

jquery改变元素上下排列的顺序

需要点击图片将套组发布, 页面代码:

Selenium调用JavaScript修改元素属性

修改元素的style,主要是将一些隐性元素显示出来,让元素可被操作: JavascriptExecutor  js = (JavascriptExecutor)driver; js.executeSc ...

随机推荐

iOS UILabel根据文字获取高度及UITableCell动态获取高度(以截取快递信息为例)

#import @interface AppDelegate : UIResponder @pr ...

c# 获取路径的几种方法

1.取得控制台应用程序的根目录方法 方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径方法2.AppDomain.CurrentDomain.Bas ...

hdu 2571 命运(递推,请小心)

题目 //不能广搜,会超内存//可以用dp思想模拟//map 后来保存的是 保存由前面推来的最大的幸运总值的点//下标从1开始,不然倍数会有问题 //AC 代码: AC代码 //不能广搜,会超内存 / ...

MySql命令——show,分页,正则表达式

先要安装MySql,过程见 MySql5.1在Win7下的安装与重装问题的解决 不是教程,还没有写教程的资格,只是为了自己查阅而已!   show show databases; //显示所有数据库 ...

JDBC连接错误(Illegal mix of collations。。。)

连接java和mysql时出现了这样的报错: java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) ...

Unity3D热更新之LuaFramework篇[03]--prefab加载和Button事件

在上一篇文章 Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板 中,我介绍了LuaFramework加载面板的方法,但这个方法并不适用于其它Prefab资源,在这套框 ...

自定义CRM系统

写在前面 之前在windows上写代码逻辑.搞前端等花了很长时间,跑通之后一直没往centos上部署, 昨天尝试部署下,结果发现静态文件找不到 =='' 由于写了2个组件: - arya model的 ...

Git入门——远程仓库及分支管理

关于本地版本库的操作,请见:Git入门--本地版本库操作 本篇提到的所有命令: 小结 前面提到,Git相对于传统的SVN有着很大的优势,其中之一就在于集中式系统中,版本库只能存在于中央服务器上:而在G ...

class in Bad version

异常信息:class in Bad version:jdk版本不对

【虫师Python】第二讲:元素定位

一.六种定位方式 1.id 2.name 3.class name 4.tag name:定位标签 5.link text:定位一个链接,如果是中文,需要在代码文最前面加一句I话|:#coding=u ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值