在使用selenium对页面进行相关操作时,有时候会遇到以下三种情况: 1.日期框:无法直接输入文本,必须要选择某一天的日期并点击才会填入文本框: 2.检索框:可以直接输入文本,但必须要点击根据输入的文本检索出来的下拉列表的某一项: 3.置灰的文本框:无法直接输入文本 按照常规套路,我们通常都会采取各种元素定位方法按照操作步骤一步一步来实现,但是遇到上面三种奇葩,页面定位操作就显得有些捉襟见肘了,因此我们可以通过selenium中的javascript操作来处理它. 我们以12306铁路官网的查…
1.下拉框的修改操作 方法一:定位到元素后,通过select选择对应的值 方法二:通过两次点击的方法:没有select的value属性时,采用click两次的方法去选择: click第一次后,出现下拉框的内容,再click第二次进行选择,第2次click进行定位时,一级一级的定位 方法三:通过display显示属性的方法:禅道的提bug页面的所属模块 2.连贯操作(鼠标悬浮) 方法一:先定位到悬浮处——再定位到双击按钮处——再进行点击 方法二:定位到双击按钮进行点击 3.拖拽操作:比如拼图:从起…
package prictce; import java.io.File; import java.io.IOException; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.We…
我们在做UI自动化时,不得不会遇到一些窗口跳转与弹框,在这种的时候如果不进行切换的话,继续执行脚本必然会报错,所以我们就需要用到切换窗口的方法. selenium中主要是三种窗口 Windows窗口 iframe窗口 alert窗口 1.Windows窗口 这类窗口也就是我们常说的句柄,句柄的切换是有必要的,我们自己手动在网页上从操作的话,产生新的句柄时浏览器会自动的帮我们跳转到最新的句柄处,但是我们在做UI自动化的时候,代码并不会帮我们自动的切换到最新的句柄,需要我们使用代码去进行切换 fro…
工作中碰到一种情况就是,要定位的元素需要滚动条滑到下方后才可以显示出来. 这种情况下,就要先滑动滚动条,再定位元素. 那么滑动滚动条我以前记录了appium中的操作,那么,selenium中该如何操作呢? target=driver.find_element_by_css_selector("div.bg-w.van-row>div:nth-child(15) div.m-t-5.c-3")       ###红色部分就是我们要定位的目标元素.driver.execute_scr…
这里以图为例,在这里把frame之间的互相操作简单列为:1变量2方法3页面之间元素的互相获取. A  首先从 父(frameABC)------->子(frameA,frameB,frameC) a1 : 访问变量名name 假如在frameABC中操作那么可以: window.frames("frameA").contentWindow.name 或者document.getElementById("frameA").contentWindow.name 或…
一.窗口切换 使用方法: 1.获取到打开的所有的窗口,句柄handles all_handles = driver.window_handles print(all_handles) 2.获取当前的窗口 driver.current_window_handle print(driver.current_window_handle) 3.利用切换的语句,切换到想要操作的窗口(HTML页面) # 获取到的所有窗口为一个列表,用索引取值 driver.switch_to.window(all_hand…
上传操作分为两种情况: 1.input标签上传 如果是input可以直接输入路径的,那么直接调用send_keys输入路径,和前边的元素操作类似,在这里不再过多的赘述. 2.非input标签上传 非input标签上传的,则需要借助第三方的工具: 这里我们用python中的第三方库pywin32库,识别对话框句柄,进而进行上传操作 首先安装第三方库:pip install pywin32 借助winspy来辅助定位,winspy下载地址:https://sourceforge.net/projec…
js的滚动条scrollIntoView() Arguments[] - python与js之间的羁绊 1.移动到元素element对象的“底端”,与当前窗口的“底部”对齐: driver.execute_script("arguments[0].scrollIntoView(false);",element) 2.移动到元素element对象的”顶端“,与当前窗口的”顶部“对齐(默认true): driver.execute_script("arguments[0].scr…
1.鼠标操作导入类:ActionChains --鼠标的操作形成一连串的动作链,由selenium的ActionChains类来完成模拟鼠标操作手表操作的过程:1.鼠标的操作,先放到一个列表中2.利用perform()执行列表当中所有的操作鼠标中基本的操作有:点击(click).双击(double_click).右键(context_click).悬浮(move_to_element).拖拽(drag_and_drop).暂停(pause)等等. 举一个栗子: from selenium.web…