selenium元素定位及常见的表单元素定位

2021年9月17日 9点热度 0条评论 来源: shunelly

好的工具能让我们省很多事。Firebugfirefox浏览器的一个插件,可以方便的查看html,编辑html,复制html,复制 xpath,以及查看cookie信息等。因此我们也以工具的安装作为开始。直接baidu firebug就会出来firebug的下载链接,下载、安装、然后重启浏览器,firebug就可以投入使用啦。

定位的时候最好是先定位到大的模块,然后再逐步定位具体到元素。在Firebug下,点击html就会看到页面上相应的区块被选中了。

Selenium的元素定位主要有以下几种方式。

find_element_by_id()

find_element_by_name()

find_element_by_class_name()

find_element_by_tag_name()

find_element_by_link_test()

find_element_by_partial_link_test()

find_element_by_xpath()

find_element_by_css_selector()

 

Idname是我们最常用的定位方式,因为大多数元素都有这两个属性,而且一般对idname命名时也会根据其意义取不同的名字。

有些元素没有idname,就只有class<div class="layer-hd"></div>,  <div class="error-tt"><p>帐号或密码错误</p></div>

每个元素都有tag标签,<body>,<head>,<p>,<form>,<div>

一般超链接上都有文字,点击文字就转到相应的链接。这时就可以用find_element_by_link_test(“重新注册”)来定位。也可以通过find_element_by_partial_link_test(“新注册”)来定位。                                    <a target="_blank" href="http://reg.email.163.com/unireg/call.do?cmd=register.entrance&from=163mail_right">重新注册</a>

 

<p>这种一般既没有idname,也没有class,只有tag,但是tag<p>的元素很多,为了方便定位我们可以通过xpath或者css来定位。如我们要定位163邮箱中错误用户名或密码登陆时会提示的“账号或密码错误”,通过Firebug,我们可以看到“账号或密码错误”是放在一个<p>标签里面,不好通过其他方式定位,那我们可以通过xpathpp=find_element_by_xpath(“/html/body/section/div[3]/div[2]/div[1]/p”)定义到<p>,然后通过pp.text()将其中的文字提取出来。

 

下面介绍一下我们最常用的表单,确认按钮等元素的识别。表单是一个包含表单元素的区域。表单元素允许用户在表单中,如文本框、下拉列表、单选框、复选框等输入信息。表单使用标签<form>定义。

<form> 标签用于为用户输入创建 HTML 表单。

表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。

表单还可以包含 menustextareafieldsetlegend 和 label 元素

表单用于向服务器传输数据。

多数情况下被用到的表单标签是输入标签(<input>)。输入类型是由类型属性(type)定义的。大多数经常被用到的输入类型如下:文本域 type="text",单选"radio",复选框"checkbox",密码"password"。

 

163邮箱登陆界面这一大块叫表单,输入用户名那儿是一个表单元素,输入密码是另外一个表单元素。

<form id="login163" target="frameforlogin" action="http://mail.163.com/" method="post" name="login163">

    <input id="savelogin" type="hidden" value="0" name="savelogin"></input>

    <input id="url2" type="hidden" value="http://mail.163.com/errorpage/error163.htm" name="url2"></input>

    <div id="idInputLine" class="loginFormIpt"></div>

    <!--

     普通密码登录 

    -->

    <div id="normalLogin" style="display: block;"></div>

    <!--

     动态密码登录 

    -->

    <div id="dynPwLogin" style="display: none;"></div>

    <div class="loginFormConf"></div>

    <div class="mailApp"></div>

</form>

 

点开<div id="idInputLine" class="loginFormIpt"></div>,会发现里面有一个input,是输入账号的表单元素。

<input id="idInput" class="formIpt formIpt-focus" type="text" value="" maxlength="50" name="username" title="请输入帐号" tabindex="1" autocomplete="on"></input>

 

点开<div id="normalLogin" style="display: block;"></div>,会发现一个输入密码的表单元素。

<input id="pwdInput" class="formIpt formIpt-focus" type="password" name="password" title="请输入密码" tabindex="2"></input>

 

同理,我们还可以找到十天内免登录的一个复选框。

<input id="remAutoLogin" class="loginFormCbx" type="checkbox" title="十天内免登录" tabindex="3"></input>

 

 

2.按钮 主要有几种type

submit

该按钮是提交按钮(除了 Internet Explorer,该值是其他浏览器的默认值)。

button

该按钮是可点击的按钮(Internet Explorer 的默认值)。

reset

该按钮是重置按钮(清除表单数据)。

<button id="loginBtn" class="btn btn-main btn-login" type="submit" tabindex="6"

 

 

 

    原文作者:shunelly
    原文地址: https://blog.csdn.net/shunelly/article/details/39119109
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。