selenium3+python自动化10-基本操作2(单选框、复选框、table定位)

一、前言

本次总结是对之前内容的扩充selenium3+python自动化6-基本操作总结(键盘、鼠标、select下拉框) ,包含单元框和复选框操作、table定位等内容。

二、单选框(radiobox)和复选框(checkbox)操作

1.认识单选框和复选框

html代码如下:

<html>  
    <head>    
    <title>单选和复选</title>  
    </head>  
    <body>  
    
    </form>  
    <h4>单选:性别</h4>   
    <form>  
    <label value="radio"></label>   
    <input name="sex" value="male" id="boy" type="radio"><br>  
    <label value="radio1"></label>  
    <input name="sex" value="female" id="girl" type="radio">  
    </form>  
    
    <h4>微信公众号:从零开始学自动化测试</h4>  
    <form>  
    <!-- <label for="c1">checkbox1</label> -->  
    <input id="c1" type="checkbox">selenium<br>  
    <!-- <label for="c2">checkbox2</label> -->  
    <input id="c2" type="checkbox">python<br>  
    <!-- <label for="c3">checkbox3</label> -->  
    <input id="c3" type="checkbox">appium<br>  
    
    <!-- <form>  
    <input type="radio" name="sex" value="male" /> Male  
    <br />  
    <input type="radio" name="sex" value="female" /> Female  
    </form> -->  
      
    </body>  
    </html> 

2.单选框操作

选择哪个选项就直接定位对应的选项,进行点击操作。

3.复选框操作

①勾选单个框:选择哪个现象就直接定位对应的选项,进行操作

②全部勾选:找到选项中共同的属性,可以用xpath定位到一组元素,结合for循环一个一个去操作

4.判断是否选中(is_selected())

有时这个选项本身就是选中的,如果再点击一下,就反选了,所以在操作选项框之前先判断选项框有没有选中,如果没有再进行下面的操作。用is_selected()来判断是否是选中状态,返回结果为bool类型,没点击时候返回False,点击后返回True。

5.实际应用

以上面HTML为例进行单选框和复选框操作,代码如下:

from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/%E5%BC%A0%E5%85%A8/Desktop/box.html')
sleep(2)
#单选框操作
s=driver.find_element_by_id('boy').is_selected()
# print(s)#没选中状态下,看is_selected()返回值
if s==False:
    driver.find_element_by_id('boy').click()
sleep(2)
#复选框操作
#勾选单个
driver.find_element_by_id('c1').click()
sleep(2)
#全选
elements=driver.find_elements_by_xpath('//*[@type="checkbox"]')
for i in elements:
    if i.is_selected()==False:
        i.click()
sleep(2)
driver.quit()

三、table定位

1.认识table

源码如下:

<html>  
        <head>  
            <title>Table测试模板</title>  
              
        </head>  
        <body>  
            <table border="1" id="myTable">  
                <tr>  
                    <th>QQ群</th>  
                    <th>QQ号</th>  
                    <th>群主</th>  
                </tr>  
                <tr>  
                    <td>selenium自动化</td>  
                    <td>232607095</td>  
                    <td>YOYO</td>  
                </tr>  
                <tr>  
                    <td>appium自动化</td>  
                    <td>512200893</td>  
                    <td>YOYO</td>  
                </tr>  
            </table>  
        </body>  
</html> 

2.table特性

  • table页面查看源码一般有这几个明显的标签:table、tr、th、td
  • <table>表示一个表格
  • <tr>表示这个表格中间的一个行
  • </th> 定义表头单元格
  • </td> 定义单元格标签,一组<td>标签将将建立一个单元格,<td>标签必须放在<tr>标签内

3.实际应用

表格定位常用xpath或者css,以定位上面表格中的“appium自动化为例”,代码如下:

from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/%E5%BC%A0%E5%85%A8/Desktop/table.html')
sleep(2)
#通过xpath定位“appium自动化”
t1=driver.find_element_by_xpath('//*[@id="myTable"]/tbody/tr[3]/td[1]')
print(t1.text)
#通过css定位“appium自动化”
t2=driver.find_element_by_css_selector('#myTable > tbody > tr:nth-child(3) > td:nth-child(1)')
print(t2.text)
driver.quit()

参考博客:https://www.cnblogs.com/yoyoketang/p/6287962.html

posted @ 2020-02-23 19:44  小北鼻  阅读(1724)  评论(0编辑  收藏  举报