专栏首页从零开始学自动化测试Selenium2+python自动化65-js定位几种方法总结

Selenium2+python自动化65-js定位几种方法总结

前言

本篇总结了几种js常用的定位元素方法,并用js点击按钮,对input输入框输入文本

一、以下总结了5种js定位的方法

除了id是定位到的是单个element元素对象,其它的都是elements返回的是list对象

1.通过id获取

document.getElementById(“id”)

2.通过name获取

document.getElementsByName(“Name”)

返回的是list

3.通过标签名选取元素

document.getElementsByTagName(“tag”)

4.通过CLASS类选取元素

document.getElementsByClassName(“class”)

兼容性:IE8及其以下版本的浏览器未实现getElementsByClassName方法

5.通过CSS选择器选取元素

document.querySelectorAll(“css selector")

兼容性:IE8及其以下版本的浏览器只支持CSS2标准的选择器语法

二、id定位

1.定位博客首页的管理按钮:id="blog_nav_contact"

2.js的定位语法里面id定位获取的是单个元素对象,可以直接用click()方法点击元素

二、class定位

1.js里面class定位获取到是是一个list列表对象

2.操作元素的话通过下标取对应的第几个值,如果只用一个那就取下标[0]

3.定位到输入框,可以直接用value="xxx"方法输入内容

4.ByName和ByTagName跟上面class一样,都是定位的一组元素

三、CSS选择器

1.css选择器定位到的也是一组元素,语法跟前面学到的css语法是一样的

四、参考代码

# coding:utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://www.cnblogs.com/yoyoketang/")

# 定位首页管理按钮:id=blog_nav_contact
js1 = 'document.getElementById("blog_nav_contact").click();'
driver.execute_script(js1)

# 输入账号
js2 = 'document.getElementsByClassName("input-text")[0].value="上海-悠悠";'
driver.execute_script(js2)

# 输入密码
js3 = 'document.getElementsByClassName("input-text")[1].value="xxx";'
driver.execute_script(js3)

# 勾选记住密码
js4 = 'document.getElementsByName("remember_me")[0].click();'
driver.execute_script(js4)

# 点击登录按钮
js5 = 'document.querySelectorAll("#signin")[0].click();'
driver.execute_script(js5)

本文分享自微信公众号 - 从零开始学自动化测试(yoyoketang),作者:YOYO

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • appium+python自动化30-list定位(find_elements)

    前言 有时候页面上没有id属性,并且其它的属性不唯一,平常用的比较多的是单数(element)的定位方法,遇到元素属性不唯一,就无法直接定位到了。 于是我们可...

    上海-悠悠
  • git+jenkins在windows机器上新建一个slave节点

    前言 我们在跑自动化项目的时候,希望有单独的测试机能跑自动化项目,并且能集成到jenkins上构建任务。如果公司已经有jenkins环境了,那无需重新搭建。 只...

    上海-悠悠
  • selenium+python自动化91-多线程启动多个不同浏览器

    一、前言 如果想用多个浏览器跑同一套测试代码,driver=webdriver.Firefox()这里的driver就不能写死了,可以把浏览器名称参数...

    上海-悠悠
  • Python正则表达式

    正则表达式为高级的文本模式匹配、抽取、与/或文本形式的搜索和替换功能提供了基础。通过标准库中的re模块来支持正则表达式。 常见的正则表达式符号和特殊字符 ...

    用户1173509
  • iscsi多路径存储方式

    如果存储服务器到交换机只有一条线路的时候,那么一条线路出线故障,整个就没法使用了,所以多线路可以解决这个问题,避免单点故障。

    胡齐
  • C# NPOI导出Excel和EPPlus导出Excel比较[转]

    在类库References右键Manage NuGet Packages...,之后选择添加对应的dll。

    谭广健
  • Andorid jar库源码Bolts原理解析

      栗子: 复制代码 Task.call(new Callable<Boolean () { @Override public Boolean call...

    砸漏
  • [Python]Python操作/管理M

    先确定环境是否已支持MySQLdb模块,如果没有,请安装,如下: [root@bw-vm-soft ~]# wget http://jaist.dl.sour...

    py3study
  • Python中的正则表达式

    句点(.)符号匹配除了换行符\n以外的任何字符。无论字母、数字、空格(不包括\n换行符)、可打印字符、不可打印字符,使用.都可以匹配。

    py3study
  • 用 WebScrapy 爬取即刻关注/被关注列表

    在即刻看见即友说用 WebScrapy 爬取了关注列表和被关注列表,感觉很爽,我评论了一句我觉得我可以写一个教程,然后就有人问我怎么搞了。骚话不说,教程来了。

    伪君子

扫码关注云+社区

领取腾讯云代金券