python元素定位的方法比较_selenium+python元素定位(3)

前言

想要实现UI自动化测试,那么我们首先得准确定位元素,然后才能对定位的元素进行各种操作,所以定位元素是前提,也是我们的重点。下面介绍七种常用的元素定位方法。

我们以测试窝登录界面为例,首先,打开测试窝登录界面。

1.鼠标放到用户名输入框,右键单击,然后点击检查

2.点击检查后会显示该输入框的相关元素,如上图。

1)通过元素ID定位

首先我们需要找到该元素的id,本例子中元素的id为inputName。其他定位方法同理

import time

from selenium import webdriver

driver = webdriver.Chrome()

#打开测试窝登录界面

driver.get("https://www.testwo.com/user/login")

#通过ID定位元素

#查找元素id为inputNmae的输入框,然后通过send_keys输入testwo

driver.find_element_by_id("inputName").send_keys("testwo")

#等待2秒,退出浏览器

time.sleep(2)

driver.quit()

2)通过元素name定位

import time

from selenium import webdriver

driver = webdriver.Chrome()

#打开测试窝登录界面

driver.get("https://www.testwo.com/user/login")

#通过name属性定位

#查找元素name为"name"的输入框,然后通过send_keys方法输入testwo

driver.find_element_by_name("name").send_keys("testwo")

#等待3s,然后退出浏览器

time.sleep(3)

driver.quit()

3)通过元素class定位

由于测试窝登录界面输入框并没有class属性,例子以为百度首页输入框为对象。

import time

from selenium import webdriver

driver = webdriver.Chrome()

#打开百度首页

driver.get("https://www.baidu.com/")

#通过class属性定位

#查找元素class为"s_ipt"的搜索框,使用send_keys方法输入testwo

driver.find_element_by_class_name("s_ipt").send_keys("testwo")

#等待3s,退出浏览器

time.sleep(3)

driver.quit()

4)通过元素名称(tag,可以叫标签吗?)定位

通过元素名称(该例子中就是)定位,由于一个页面会有很多相同的元素,那么使用元素名称去定位是不可靠的(不可靠你说毛线呀)。这里提到主要是想告诉大家selenium有提供该方法去定位啦。

下面的例子是定位不到(知道有这回事就行,请忽略这个例子)

import time

from selenium import webdriver

driver = webdriver.Chrome()

# #通过元素名称定位(例如input元素)

driver.get("https://www.testwo.com/user/login")

driver.find_element_by_tag_name("input").send_keys("testwo")

time.sleep(3)

driver.quit()

5)通过超链接定位

例子中都为超链接定位,不同点在于driver.find_element_by_partial_link_text是模糊匹配的

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://www.testwo.com/user/login")

#通过超链接定位

#查找文本为文章的超链接,然后使用click方法点击该元素

driver.find_element_by_link_text("文章").click()

#然后再回到上一页(点击前)

driver.back()

#查找文本中包含首的超链接,然后使用click方法点击该元素

driver.find_element_by_partial_link_text("首").click()

#等待3s,然后退出

time.sleep(3)

driver.quit()

6)通过xpath定位(重点)

xpath定位应该是测试中最常用的定位方式了吧,那么xpath是什么?

xpath是一种路径语言,在这里不详细介绍,首先教大家如何获取xpath,如下图可以获取到xpath路径(该方式只能获取到简单的路径),xpath我们会在后续的章节详细的介绍。

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://www.testwo.com/user/login")

#通过xpath定位

# driver.find_element_by_xpath('//*[@id="inputName"]').send_keys("testwo")

#等待3s,然后退出

time.sleep(3)

driver.quit()

7)通过css定位(重点)

CSS定位也是比较常用的方式,并且比xpath更加简洁,如下图可以获取到CSS,我们会在后续的章节详细的介绍。

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://www.testwo.com/user/login")

#通过css定位

driver.find_element_by_css_selector('#inputName').send_keys("测试窝")

time.sleep(3)

driver.quit()

声明:欢迎大家加入测试窝官方交流群(316016449),如上述内容存在错误,请帮忙指出,我会及时更正。

你可能感兴趣的:(python元素定位的方法比较)