一、jQuery 语法

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

1、基础语法:

$(selector).action()

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

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

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

2、实例:

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

  • $("p").hide() - 隐藏所有 <p> 元素

  • $("p.test").hide() - 隐藏所有 class="test" 的 <p> 元素

  • $("#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);
}
}

运行结果如下:

selenium用jquery改变元素属性的更多相关文章

  1. jquery获取、改变元素属性值

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

  2. 使用jQuery操作元素属性

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

  3. jQuery改变元素class属性

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

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

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

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

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 使用python处理selenium中的获取元素属性问题

    # 获取我的订单元素class属性值 at = self.driver.find_element_by_link_text('我的订单').get_attribute('class') # 判断cla ...

  7. 使用python处理selenium中的获取元素属性

    # 获取我的订单元素class属性值 get_class_name = driver.find_element_by_link_text('我的订单').get_attribute('class') ...

  8. 巧妙使用Jquery 改变元素的 onclick 事件

    需要点击图片将套组发布, 页面代码: <img width="20px" src=" <s:property value="IMAGES_PATH& ...

  9. Selenium调用JavaScript修改元素属性

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

随机推荐

  1. Beta阶段敏捷冲刺①

    1.提供当天站立式会议照片一张. 每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 1.1昨天已完成的工作. 姓名 昨天已完成的工作 徐璐琳 熟悉"慧记" ...

  2. PAT 甲级 1090 Highest Price in Supply Chain

    https://pintia.cn/problem-sets/994805342720868352/problems/994805376476626944 A supply chain is a ne ...

  3. Mac OS X使用简介

    一.OS X 版本以大型猫科动物命名 10.0   猎豹(Cheetah) 10.1   美洲狮(Puma) 10.2   美洲虎(Jaguar) 10.3   黑豹(Panther) 10.4   ...

  4. NodeList & null

    NodeList & null querySelectorAll & querySelector let arr = document.querySelectorAll(`[data- ...

  5. 继承自NSObject的不常用又很有用的函数(1)

    初始化阶段 —— load 和 initialize load函数 原型: +(void)load 当类被引用进程序的时候会执行这个函数. 在一个程序开始运行之前(在main函数开始执行之前),在库开 ...

  6. 【刷题】BZOJ 4946 [Noi2017]蔬菜

    Description http://www.lydsy.com/JudgeOnline/upload/Noi2017D2.pdf Solution 网上大部分都是并查集写法,但是有大神写了非并查集写 ...

  7. Django入门项目实践(上)

    项目结构 1.建立项目 File -->> New Project... 第一个Location是项目所在的目录,第二个Location是项目独立的Python运行环境,我们称之为Virt ...

  8. Hadoop生态圈-Flume的组件之自定义Sink

    Hadoop生态圈-Flume的组件之自定义Sink 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要介绍sink相关的API使用两个小案例,想要了解更多关于API的小技 ...

  9. Java基础-逻辑运算符Logic Operators

    Java基础-逻辑运算符Logic Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.逻辑运算符 逻辑运算符是对布尔值进行操作运算的,常见的有: 1>.逻 ...

  10. OpenStack API部分高可用配置(二)

    一.安装与配置HAProxy 1.调整内核参数,允许绑定VIP: vim /etc/sysctl.conf [内容] net.ipv4.ip_nonlocal_bind=1 sysctl -p 2.安 ...