前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python+Selenium 定位页面

Python+Selenium 定位页面

作者头像
py3study
发布2020-01-15 12:57:09
1.3K0
发布2020-01-15 12:57:09
举报
文章被收录于专栏:python3python3

1.跳转到Frame/Iframe ,再定位元素 理解:frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位

1.1方法一 如果iframe有name或id的话,直接使用switch_to_frame("name值")或switch_to_frame("id值")。如下: driver=webdriver.Firefox() driver.get(r'http://www.126.com/') driver.switch_to_frame('x-URS-iframe') #需先跳转到iframe框架 username=driver.find_element_by_name('email') username.clear()

1.1方法二 如果iframe没有name或id的话,则可以通过下面的方式定位: #先定位到iframe elementi= driver.find_element_by_class_name('APP-editor-iframe') #再将定位对象传给switch_to_frame()方法 driver.switch_to_frame(elementi)

PS:完成操作后,可以通过switch_to.parent_content()方法跳出当前iframe,或者还可以通过switch_to.default_content()方法跳回最外层的页面

2.Xpath 层级定位 2.1 通过绝对路径定位 例如:find_element_by_xpath("/html/body/div/div/div[2]/div[3]/a[2]").click()

绝对路径是从当前元素往前数最近的一个html 开始数的。 2.2 利用元素属性定位 地图有三个属性,href,name,class。

driver.findElement(By.xpath("//a[@name='tj_trnews']")).click();

    driver.findElement(By.xpath("//a[@href='http://news.baidu.com']")).click()

driver.findElement(By.xpath("//a[@class='mnav']")).click();

    driver.findElement(By.xpath("//a[contains(@href,\"http://map.baidu.co\")]")).click();

代码语言:javascript
复制
参考资料:
https://www.cnblogs.com/csj2018/p/9194618.html 
https://www.cnblogs.com/yufeihlf/p/5689042.html
http://www.cnblogs.com/yufeihlf/p/5717291.html 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档