python+selenium元素定位,Python+selenium 怎么定位自定义弹窗元素
python+selenium元素定位,Python+selenium 怎么定位自定义弹窗元素详细介绍
本文目录一览: python+selenium怎么定位页面弹窗的元素
1、问题发生描述:
从一个页面进行点击等操作,页面跳转到第二个页面,对第二个页面中的元素,采取任何措施定位都报错,问题报错点如下:
2、出现问题的原因:
窗口句柄还停留在上一个页面,对于当前新弹出的页面还没有定位,因此新页面的任何元素都定位不到
3、解决方案:
在新页面操作元素之前,需添加句柄操作,方式如下:
1、使用driver.current_window_handle #获取当前窗口句柄,添加此方法,仍报相同的错误,因此不能采用这种方式进行解决问题
2、使用driver.switch_to_window(driver.window_handles[1]),或者 driver.switch_to_window(self.driver.window_handles[-1]) ,两种方式中任选一种即可找到对应的元素
添加后的代码如下:
每天记录进步一点点.........
Python+selenium 怎么定位自定义弹窗元素
首先要确定弹窗的类型。
弹出窗口基本上有如下三种实现方式:
(1)div弹窗
(2)新标签页弹窗
(3)alert弹窗
针对不同类型的弹窗,相应采取不同的定位措施。
由于不知问题中实际的弹窗类型,在此笼统说下:
1、div弹窗
对于此类弹窗,可以直接用 find_element_by_... 得到 div 窗口中各元素,再进行操作即可,需要注意的一点是,需要等 div 窗口元素加载完毕之后,再去获取窗口中的元素。
2、新标签页弹窗
新标签页弹窗,则需要进行窗口的切换。从图片看,问题中的弹窗应该不属于此类弹窗。
3、alert弹窗
此类弹窗是由 js 执行 alert、confirm、prompt等生成的弹窗,其应对方法是:
使用 switch_to.alert() 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/send_keys 方法进行操作。
python+selenium怎么定位页面弹窗的元素
切换到新窗口,再定位元素
print browser.current_window_handle # 输出当前窗口句柄(百度)
handles = browser.window_handles # 获取当前窗口句柄集合(列表类型)
for handle in handles:# 切换窗口(切换到搜狗)
if handle!=browser.current_window_handle:
print 'switch to ',handle
browser.switch_to_window(handle)
print browser.current_window_handle # 输出当前窗口句柄(搜狗)
break
selenium+python 自动化测试,下面页面中元素如何定位,我试了很多方法都不行
1.框架搭建
1.1 将struts2中的jar文件导入到项目中
commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,freemarker-2.3.15.jar,ognl-2.7.3.jar
struts2-core-2.1.8.1.jar,xwork-core-2.1.6.jar
1.2 将struts.xml文件拷贝到项目的src目录下
1.3 修改web.xml文件
添加:
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
2.action中方法的调用方式
2.1 自动方法调用(只能调用execute)
2.2 指定方法调用(通过设置action标签中的method属性)
2.3 动态方法调用(在调用时,在action后加!方法名称,如:login!deletUser)
注意:
2.4 通配符调用
3. action接收客户端参数的方式
3.1 直接在action中定义参数变量,并生成set和get方法
3.2 定义接收参数的类
注意:都要为action的成员变量提供get和set方法
3.3 让action实现ModelDriven接口,并实现里面的getModel方法
4.获取request,session,application的方式
4.1 用ActionContext获取,实际上获取到的都是Map对象
4.2 用ServletActionContext获取,获取到的是基于Servlet API的对象
4.3 让action实现RequestAware,SessionAware,ApplicationAware接口,并实现里面的方法
5.四种转向
5.1 action转发到页面(默认)
5.2 action重定向到页面
5.3 action转发到action
login
/login
login
5.4 action重定向到action
login
python3+selenium百度知道回答问题输入框这个元素定位不到,求方法 解决了肯定高悬赏加采纳?
1、页面中有iframe,定位元素时,需要用switch_to.frame()转换到元素所在的frame上再去定位
2、遇到一种新情况,有些按钮在html上没有被赋予herf链接,而是由javascript控制跳转到新的页面,这种情况下点击按钮之后浏览器上打开一个新页面,但是浏览器的句柄handle仍然会停留在原页面(浏览器显示的句柄在新页面,所以不容易发现这个问题),而不是新弹出的页面上,所以要定位新页面的元素,必须先将句柄转移到新弹出的页面上,再去进行定位,用到如下语句:
#获得浏览器上所有窗口
handles = driver.window_handles
#转换到最新弹出的窗口
driver.switch_to.window(driver.window_handles[len(handles)-1])
跳转需要时间的话,加上time.sleep(2),再试就能定位成功了
转载于:https://www.cnblogs.com/shuchengxiang/p/6558239.html
文章最后发布于: 2017-03-16
原文链接:http://www.cnblogs.com/shuchengxiang/p/6558239.html
//试试下面代码,不行发代码我调试试试
from selenium.webdriver import Firefox
b = Firefox()
b.get('localhost:8000') # or wherever you are serving this html from
iframe = b.find_element_by_css_selector('iframe')
b.switch_to_frame(iframe)
print b.page_source
162455145
怎么定位这种页面元素,python+selenium?
你先用@class='selectRole-groupData'定位到ul(上面还有路径的话仿照这个格式写),然后取第一个li标签li[0]的a标签,合起来就是@class='selectRole-groupData'/li[0]/a,然后模拟点击事件.click();(或者window.open)就可以了(另一个同理)。
python+selenium如何定位元素
用他的selenium的webdriverd的API,可以是css path定位,也可是xpath定位,还可以根据ID定位等等
Python+selenium如何定位多层嵌套元素
有时候,什么定位元素的方法都试过了,还是定位不到元素,就考虑frame切换问题 driver.switchTo().frame("定位到的frame元素"); //接下来就可以在这个frame框架内定位该框架里的元素了 driver.findElement(By.name("message")).sendKeys("top"); //如果定位另一框架内元素,需返回到web页面,再进行切换 driver.switchTo().defaultContent(); driver.switchTo().frame("要定位的frame元素");
python selenium重定向后怎么定位元素
xpath定位,你用chrome浏览器,在页面上右键-》审查元素,然后会弹出开发者工具,里面会显示你选中部分的页面源码并高亮你选择的地方,在源码里右键,选择copy xpath
用这个定位