某些特殊情况下,使用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. macOS的PrivilegedHelperTools文件夹

    在 macOS 上,/Library/PrivilegedHelperTools 文件夹是一个特殊的位置,用于存放可以以更高权限运行的辅助工具或守护进程.这些工具通常由各种应用程序安装,以执行需要超出 ...

  2. Luogu P2292 HNOI2004 L 语言 题解 [ 紫 ] [ AC 自动机 ] [ 状压 dp ]

    L 语言:很好的一道状压 dp 题. 思路 看到这题,首先可以想到一个很暴力的 dp,设 \(dp_i\) 表示考虑到第 \(i\) 位能否被理解,暴力匹配字符串转移即可. 第一个优化也很显然,暴力匹 ...

  3. MAC消息认证码介绍

    此MAC是密码学概念,与计算机网络不同 为什么有了摘要算法还要有MAC 摘要算法保障的是消息的完整性 归根到底就是由H(x)来保证x的完整 那么问题来了,如果我知道你所使用的摘要算法(例如中间人攻击) ...

  4. mysql 查询结果为空时值时执行后面的sql语句

    sql server支持变量所以一般使用方法如下: DECLARE @Val varchar(50) select @Val = param_value where t_param where par ...

  5. thinkphp或laravel连接sql server 2014数据库

    问题描述:平时使用最多为mysql数据库,目前有项目数据库为sql server 2014,列出连接全过程 首先下载安装SQLserver的odbc开放数据库链连接,下载地址:https://lear ...

  6. 详解nginx配置url重定向-反向代理

    https://www.jb51.net/article/99996.htm 本文系统:Centos6.5_x64 三台主机:nginx主机,hostname: master.lansgg.com  ...

  7. 万字长文手把手教你实现MicroPython/Python发布第三方库

    MicroPython/Python 发布第三方库 原文链接: FreakStudio的博客 摘要 文章讲解内容包括第三方库文件说明和组织.开源许可协议选择.通过black模块.Flake8模块和预提 ...

  8. [评测/调研/AIGC/流媒体] 视频内容自动生成摘要工具

    概述:视频内容自动生成摘要工具 SolidPoint | 仅支持 简介 SolidPoint 是一款AI驱动的在线视频摘要工具,专注于自动生成YouTube视频的简洁摘要. 通过分析视频内容提取关键点 ...

  9. ABAQUS弹塑性分析

    1. 弹塑性分析的主要问题 1.1 elastic-plastic deform behavior abaqus 默认的塑性表现行为是金属材料经典塑性理论,采用mises屈服面定义各向同性屈服. 一般 ...

  10. SQL 常见优化指南

    这一章介绍SQL常见的优化,一共30条 第一条 对查询优化,要尽量的避免全表扫描,首先应该考虑在where以及order by 涉及的列上建立索引. 第二条 应尽量避免在where子句中对字段的nul ...