Python教程

记录个人学习selenium(主要为python)第二天

本文主要是介绍记录个人学习selenium(主要为python)第二天,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第二天,主要学习如何定位元素

1. 定位方法,即如何定位,这需要我们对HTML有一定的了解

	个人推荐使用xpath定位,因为他简单实用:直接找到你需要的“检查”,然后点击左键,选择copy,
选择xpath就可以了。得到后,最好使用CTRL+F查找一下,看看是否有多个,一定要准确。

image

	#建议百度寻找 “爬虫定位元素”了解一下,个人理解:就像目录一样一级一级的查找,或者根据他独有的特征查找。
定位器 Locator 描述
class name 定位class属性与搜索值匹配的元素(不允许使用复合类名)
css selector 定位 CSS 选择器匹配的元素
id 定位 id 属性与搜索值匹配的元素
name 定位 name 属性与搜索值匹配的元素
link text 定位link text可视文本与搜索值完全匹配的锚元素
partial link text 定位link text可视文本部分与搜索值部分匹配的锚点元素。如果匹配多个元素,则只选择第一个元素。
tag name 定位标签名称与搜索值匹配的元素
xpath 定位与 XPath 表达式匹配的元素

有两种写法都行:

	1.  driver.find_element(By.ID, "cheese") #官方推荐的
	#可以将ID改成上述的其他其他7种定位方法,不过后面的参数(匹配内容)需要修改。
	# By 是来自于 from selenium.webdriver.common.by import By
	2. driver.find_element_by_id('cheese')

2. 实战

image
image

上面两个图片分别为百度的输入框和输入框的源码,通过源码我们可以很轻松的找到其 id为'kw' 结果:

	driver = webdriver.Chrome(options=_options)
	driver.get('https://www.baidu.com/')
	input_address = driver.find_element_by_id('kw')
	print(input_address)
	#结果:
	<selenium.webdriver.remote.webelement.WebElement (session="05087667be51e2eabd97f722aa597143", element="64a7cd32-64c5-4f77-8231-bfccba6224bf")>

3. **selenium 版本4开始,支持相对定位:下面是来自官网的实例,笔者对此了解不深,在此先记录。

Selenium是通过使用JavaScript函数 getBoundingClientRect() 来查找相对元素的。这个函数能够返回对应元素的各种属性例如:右,左,下,上。

above() 元素上; below() 元素下;toLeftOf() 元素左;toRightOf() 元素右;near() 附近
image

from selenium.webdriver.support.relative_locator import with_tag_name
passwordField = driver.find_element(By.ID, "password")
emailAddressField = driver.find_element(with_tag_name("input").above(passwordField))
这篇关于记录个人学习selenium(主要为python)第二天的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!