定位元素-八种定位方式

一、浏览器基本操作

1.浏览器加载URL

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

2.浏览器最大化

driver.maximize_window()

3.设置浏览器宽、高

# 参数数字为像素点,设置浏览器宽高都为800像素
driver.set_window_size(800,800)

4.控制浏览器前进、后退

driver.forward()
driver.back()

5.刷新

driver.refresh()

6.获取当前页面的标题

driver.title()

二、元素定位

webdriver提供了一系列的元素定位方法

元素 webdriver中的方法
id find_element_by_id()
name find_element_by_name()
class name find_element_by_class_name()
tag name find_element_by_tag_name()
link text find_element_by_link_text()
partial link text find_element_by_partial_link_text()
xpath find_element_by_xpath()
css selector find_element_by_css_selector()

三、id元素定位(根据标签的id定位)

1.示例:百度搜索框

2.F12查找到页面元素为以下html代码,查找id="kw"的元素

3.id定位

#coding:utf-8
from selenium import webdriver
import time

# 百度搜索selenium
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_id("kw").send_keys("selenium")  # id 定位输入框元素
driver.find_element_by_id("su").click()   # id 定位"百度一下"元素
time.sleep(3)
driver.quit()

四、name元素定位(根据标签的name定位)

1.示例:示例:百度搜索框

2.F12查找到页面元素,name="wd"

3.name定位

from selenium import webdriver
import time

# 百度搜索
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_name("wd").send_keys("selenium")  # name 定位输入框元素
driver.find_element_by_id("su").click()  # id 定位"百度一下"元素
time.sleep(3)
driver.quit()

五、xpath元素定位

1.示例:百度搜索框

一般的正常copy-xpath就可以了,但是copy不能保证百分百准确,我们也可以手写xpath,写好可以在下方搜索一下

2.xpath定位

from selenium import webdriver
import time

# 百度搜索
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_xpath("//form/span/input[@id='kw']").send_keys("selenium")  # xpath 定位输入框元素
driver.find_element_by_xpath("//form/span/input[@id='su']").click()   # xpath 定位"百度一下"元素
time.sleep(3)
driver.quit()

六、class name 定位

1.示例:百度搜索框

2.class name 定位

from selenium import webdriver
import time

# 百度搜索
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_class_name("s_ipt").send_keys("selenium")  # class name 定位输入框元素
driver.find_element_by_class_name("bg s_btn").click()   # class name 定位"百度一下"元素
time.sleep(3)
driver.quit()

七、link text定位

1.link text用来定位文本链接,如通过在百度首页点击'新闻'、'地图'等都可以进入到对应的页面,因此可以用link进行定位:

2.示例:百度首页“新闻”链接

3.link text定位

from selenium import webdriver
import time

# 点击百度首页“新闻”标签
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_link_text("新闻").click()
time.sleep(3)
driver.quit()

八、partial link text定位

1.partial link text定位方式为link text的一个补充,当文件链接过长时,部分匹配定位

2.如以下链接过长定位时只需要截取一部分即可

<a href="http://news.baidu.com" name="tj_trnews" class="mnav">这是全世界全球最关注的新闻</a>

3.partial link text定位

driver.find_element_by_partial_link_text("关注的新闻").click()

九、css selector定位(不太常用)

1.css Selector定位实际就是HTML的css选择器的标签定位

用css定位就不需要从最上面一层开始定位了,可以从当前层最近的容易定位的元素(class或者id)开始。

十、tag name定位(很不常用,不好定位)

当要定位一组元素相同元素时,可以考虑用tagName或name。

总结:

1. 当页面元素有id属性时,最好尽量用id来定位。

2. 当要定位一组元素相同元素时,可以考虑用tagName或name。

3. 当有链接需要定位时,可以考虑linkText或partialLinkText方式。

4. xpath定位用的较多,可以直接复制也可以自己写

猜你喜欢

转载自blog.csdn.net/qq_39620483/article/details/84703791