某些特殊情况下,使用selenium的api无法操作页面元素,可以通过js来完成

一.Js定位

js操作中的webelement通过console控制台来进行js定位:

WebElement webelement=document.getElementById(id);

二.元素无法输入

时间控件输入方法:

可点击时间控件下拉框选择(比较麻烦);

有些软件的时间控件标签为input,可直接输入,如果时间控件标签不是input;

不可点击直接输入,可通过js来改变元素的源代码属性

设置/去除元素属性:setAttribute/removeAttribute

案例:12306的时间选择框

JavascriptExecutor javascriptExecutor=(JavascriptExecutor)webDriver;
//移除源代码内导致不可输入的属性
javascriptExecutor.executeScript("document.getElementById('train_date').removeAttribute('readonly')");
webDriver.findElement(By.id("train_date")).clear(); //清除原有元素
//清除了只读的属性后,元素就可以输入了
webDriver.findElement(By.id("train_date")).sendKeys("2021-5-14");

三.元素无法通过click点击

元素可被定位到,但是无法通过click点击,是由于点击事件被父元素消耗掉

WebElement webElement=webDriver.findElement(By.xpath("//span[text()='登录']"));
WebElement WebElement1=x;
JavascriptExecutor javascriptExecutor=(JavascriptExecutor) webDriver;
//js传参:把要点击的元素进行传参
javascriptExecutor.executeScript("arguments[1].click()",webElement1,webElement);

四.滚动条操作

滚动条案例:

JavascriptExecutor javascriptExecutor(JavascriptExecutor)webDriver;
//滚动到底部
javascriptExecutor.executeScript("window.scrollTo(0,document.body.scrollHeight);");
//js滚动滚动指定距离
javascriptExecutor.executeScript("window.scrollTo(0,800);");
//滚动到指定位置
javascriptExecutor.executeScript("webelement.scrollIntoViewIfNeeded(true);");

web自动化:Javascript操作页面元素的更多相关文章

  1. 使用javaScript操作页面元素

    from selenium import webdriver import time import unittest from selenium.common.exceptions import We ...

  2. Python3 Selenium自动化web测试 ==> 第五节 WebDriver高级应用 -- 使用JavaScript操作页面元素

    学习目的: 中级水平技术提升 在WebDriver脚本代码中执行JS代码,可以解决某些 .click()方法无法生效等问题 正式步骤: Python3代码如下 # -*- coding:utf-8 - ...

  3. webdriver高级应用-使用JavaScript操作页面元素

    Webdriver搞不定的,需要用js,无需引入有关js的包就可用 在WebDriver脚本代码中执行JavaScript代码,来实现对页面元素的操作.此方法主要用于解决在某些情况下,页面元素的.cl ...

  4. 常用JavaScript操作页面元素的方法

    1.取得dropdownlist的选中值 var ddl =document.getElementById('<%=ddlusers.ClientID%>'); var index = d ...

  5. Web自动化 - 选择操作元素 2

    文章转自 白月黑羽教Python 前面我们看到了根据 id.class属性.tag名 选择元素. 如果我们要选择的 元素 没有id.class 属性, 这时候我们通常可以通过 CSS selector ...

  6. 使用protractor操作页面元素

    Protractor是为Angular JS应用量身打造的端到端测试框架.它可以真实的驱动浏览器,自动完成对web应用的测试.Protractor驱动浏览器使用的是WebDriver标准,所以使用起来 ...

  7. 用javaScript获取页面元素值

    用JavaScript获取页面元素常见的三种方法:                                                           getElementById() ...

  8. Selenium with Python 005 - 调用js操作页面元素

    WebDriver提供了execute_script()方法来执行JavaScript方法,格式如 driver.execute_script(script,*args) 执行js一般有两种场景,一是 ...

  9. 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变

    查看本章节 查看作业目录 需求说明: 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变 当用户单击"+" ...

  10. 使用 jQuery 操作页面元素的方法,实现浏览大图片的效果,在页面上插入一幅小图片,当鼠标悬停到小图片上时,在小图片的右侧出现与之相对应的大图片

    查看本章节 查看作业目录 需求说明: 使用 jQuery 操作页面元素的方法,实现浏览大图片的效果,在页面上插入一幅小图片,当鼠标悬停到小图片上时,在小图片的右侧出现与之相对应的大图片 实现思路: 在 ...

随机推荐

  1. linux安装hbase

    下载后解压到/opt/Servers/hbase-1.4.6 使用Hbase自带的zookeeper================================================== ...

  2. mac安装NTFS工具

    1.插上硬盘,输入diskutil list 查看磁盘列表找到磁盘名称 2.更改 /etc/fstab文件 LABEL=MyData none ntfs rw,auto,nobrowse ntfs r ...

  3. nginx 简单实践:正向代理、反向代理【nginx 实践系列之二】

    〇.前言 本文为 nginx 简单实践系列文章之二,主要简单实践了两个内容:正向代理.反向代理,仅供参考. 关于 Nginx 基础,以及安装和配置详解,可以参考博主过往文章: https://www. ...

  4. SQLServer 常用命令记录,持续更新.....(有问题可以留言)

    SqlServer 单用户解决方案 USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+R ...

  5. Element-UI 使用心得之el-card

    el-card 是Element-UI  内置的卡片组件,使用起来很方便,但是对Vuejs和html 不是精通的话,根据自己的要求布局,会出现自己的小困惑,必须添加垂直居中,按照CSS 布局设置,总是 ...

  6. WPF .Net Core 3.1遇到Satellite Assemblies无法正常加载的处理

    1.原因 加载的时候没有调取 AssemblyLoadContext.Default 2.解决方案: 在程序启动的时候,手动调用 /// <summary> /// Interaction ...

  7. nacos(七): gateway(单体)

    这篇文章将从gateway的搭建.自动路由匹配.路由数组.跨域和路由过滤器五个方面对gateway项目展开讨论. 1.gateway的搭建 gateway的项目基本的搭建过程与消费者的搭建过程基本一致 ...

  8. SparkRDD算子(transformations算子和actions算子)

    RDD提供了两种类型的操作:transformation和action1.所有的transformation都是采用的懒策略,如果只是将transformation提交是不会执行计算的,计算只有在ac ...

  9. 洛谷P10112 [GESP202312 八级] 奖品分配 题解

    题目传送门. 看了题解才发现我有多蠢. 我的做法真是唐完了. 在此之前请学习扩展欧几里得定理和扩展欧几里得定理求逆元. 发现奖品要么 \(N\) 个,要么 \(N+1\) 个,于是分类讨论,当奖品只有 ...

  10. Vim编辑windows格式文件出现的[noeol][dos]的含义、解决方法及方法解释

    文章目录 前言 [dos] [noeol] 前言 最近想要将保存再windows的文件传到linux上,传进去保存文件之后,用vim打开发现在文件的底下出现了[dos] [noeol]这两个标志.然后 ...