某些特殊情况下,使用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. C笔记---01基础篇

    一.C语言内存分区 1.程序代码区:存放 CPU 执行的机器指令. 2.数据区   2.1常量区:字符串.数字等常量存放在常量区,const修饰的全局变量存放在常量区:常量区的内存是只读的,程序结束后 ...

  2. overflow秒解外边距合并以及浮动导致的元素塌陷问题

    外边距导致的合并问题: 1 处于一上一下位置的两个块级元素 在同时各自设置了上下边距时,二者间的外边距通常以 数值较大的一个作为两者间的外边距 而不是简单的数值相加 .box2{ width: 100 ...

  3. Apache Camel系列(1)----使用场景

    Apache Camel是一个基于Enterprise Integration Pattern(企业整合模式,简称EIP)的开源框架.EIP定义了一些不同应用系统之间的消息传输模型,包括常见的Poin ...

  4. RDK新一代模型转换可视化工具!!!

    作者:SkyXZ CSDN:SkyXZ--CSDN博客 博客园:SkyXZ - 博客园 之前在使用的RDK X3的时候,吴诺老师@wunuo发布了新一代量化转换工具链使用教程,这个工具真的非常的方便, ...

  5. [PA2021] Od deski do deski 题解

    好题好题,难者不会会者不难,我是前者. 实际上加入就可以合法的数是很好计算的.考虑现在所有前缀合法串后的字符实际上都可以满足条件. 容易想到根据是否合法设置状态.设 \(f_{i,j}/g_{i,j} ...

  6. Linux - VMware workstation安装虚拟机

    Step1:新建虚拟机 主页/文件 >> 创建新的虚拟机 新建虚拟机向导 典型(推荐)(T) 通过几个简单的步骤创建Workstation虚拟机 自定义(高级)(C) 创建带有SCSI控制 ...

  7. Windows编程----结束进程

    进程有启动就有终止,通过CreateProcess函数可以启动一个新的子进程,但是如何终结子进程呢?主要有四种方法: 通过主线程的入口函数(main函数.WinMain函数)的return关键字终止进 ...

  8. c++中的类成员函数指针

    c++中的类成员函数指针 文章目录 c++中的类成员函数指针 发生的事情 正常的函数指针定义 定义类的成员函数指针 std::function 发生的事情 最近,想用一个QMap来创建字符串和一个函数 ...

  9. Qt 重载QComboBox,实现右侧删除键

    文章目录 Qt 重载QComboBox,实现右侧删除键 前言 方案 设置下拉箭头图标 设置QComboBox内容为空 自定义showPopup函数 定位鼠标 屏蔽鼠标右键 最终控制下拉代码 效果图 代 ...

  10. 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器

    需求背景 阿里云服务器到期了,正好家里有闲置的电脑,还有公网IP,打算装个linux服务器使用.本文章主要重点是实现远程连接虚拟机内服务器,打通网络连接,更多玩法大家可以自行探索. ps: 公网IP自 ...