Selenium -Web控件定位与常见操作

一、Selenium点击与输入

driver.find_element_by_id(kw).send_keys(自动化测试)
driver.find_element_by_id(su).click()

#下面用By方法
from selenium.webdriver.common.by import By

find_element(By.ID,kw).send_keys(自动化测试)
find_element(By.ID,su).click()

 

二、Xpath定位

XML Path Language

用于解析heml与xml
Selenium -Web控件定位与常见操作
缺点:速度慢,因为xpath是从头到尾的一点一点去查找元素。
Selenium -Web控件定位与常见操作
Selenium -Web控件定位与常见操作
Xpath 演示

从节点往下找
Selenium -Web控件定位与常见操作
Selenium -Web控件定位与常见操作
直接选取class
Selenium -Web控件定位与常见操作
/ 和 // 的区别

/ 只能寻找 class=“live‐list” 下面节点的元素,下面节点元素里面的元素则无法找到。
Selenium -Web控件定位与常见操作
// 能找到子元素里面的元素。 如下图:能找到 class=“live‐list” 里面的 a 标签和 div 标签等。
Selenium -Web控件定位与常见操作
如下图: //a 能找到里面所有的带有 a 标签的元素, /a 则找不到里面的带有 a 标签的元素。
Selenium -Web控件定位与常见操作

三、Css Selector

Css Selector支持Appium和Selenium。但是Appium原生控件是不支持Css Selector的,只支持Xpath。
Selenium -Web控件定位与常见操作
Selenium -Web控件定位与常见操作
Selenium -Web控件定位与常见操作
Css Selector演示

根据id和name来查找

写法: $(’#kw’) 、 $(’[id=kw]’) 和 $(’[name=wd]’)
Selenium -Web控件定位与常见操作

Selenium -Web控件定位与常见操作

Selenium -Web控件定位与常见操作

有多个 a 元素该如何找到相对应的想要的元素呢?比如要找到 资讯 的 a 元素。

$(’#s_tab a:nth‐child(1)’) 则表示选择其父元素的第1个子元素的每个元素。这个不是我们要找的“资讯”的元素。

$(’#s_tab a:nth‐child(2)’) 则表示选择其父元素的第2个子元素的每个元素。这个才是我们要找的
元素。

为什么括号里是 2 而不是 1 呢。

因为 a 元素的父元素是Selenium -Web控件定位与常见操作
而不是
Selenium -Web控件定位与常见操作
所以我们要找的“资讯”的 a 元素是
Selenium -Web控件定位与常见操作
下面的第二个元素,所以括号里是2: $(’#s_tab a:nth‐child(2)’) 。

在用这个方法的时候要看其父元素是谁,要找的元素在第几。
Selenium -Web控件定位与常见操作
如果我们想找到最后一个元素呢?

使用 $(’#s_tab a:nth‐last‐child(1)’) 或者 $(’[id=s_tab] a:nth‐last‐child(1)’)

加上 -last 表示从最后开始找
Selenium -Web控件定位与常见操作
页面中有多个相同的class时
Selenium -Web控件定位与常见操作

四、selenium中使用XPath和css selector

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

class TestSelector:

    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get(https://www.baidu.com)
        self.driver.implicitly_wait(3) #隐式等待3秒

    def teardown(self):
        time.sleep(2)
        self.driver.quit()

    def test_selector(self):
        self.driver.find_element(By.XPATH,//*[@id="kw"]).send_keys(自动化测试)

 

Selenium -Web控件定位与常见操作
Selenium -Web控件定位与常见操作
Css Selector写法

def test_selector(self):
    self.driver.find_element(By.CSS_SELECTOR,#kw).send_keys(自动化测试)

 

五、最后

对软件测试、接口测试、自动化测试、软件测试零基础入门、性能测试、LR脚本开发、python自动化全栈、面试经验感兴趣可以175317069,群内会有不定期的发放免费的资料链接。如果你有好的学习也资料可以私聊发我,我会注明出处之后分享给大家。
Selenium -Web控件定位与常见操作
Selenium -Web控件定位与常见操作

Selenium -Web控件定位与常见操作

上一篇:linux下php7编译安装swoole扩展


下一篇:交换机telnet、Stelnet的配置过程