今天学习总结一下selenium的基本使用:
这部分代码是用来链接selenium并使用
from selenium import webdriver
import time
# 通过 webdriver 获取浏览器的对象
driver = webdriver.Chrome("./chromedriver.exe")
#准备一个网址
url = "https://www.baidu.com"
driver.get(url)
time.sleep(5)
#回收资源
driver.quit()
1.元素定位
selenium提供了很多的方法对页面的元素进行定位,例如获取元素的一般方式:
id:find_element_by_id
name:find_element_by_id
class_name:find_element_by_class_name
tag_name:find_element_by_tag_name
例如:
<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="continue" type="submit" value="Login" />
</form>
</body>
<html>
我们可以用着这种方式来找到form表单,其他方法类似
login_form = driver.find_element_by_id('loginForm')
2.超链接(a标签)
如果你知道一个锚标签使用了什么文本,那么就使用这种方法。在超链接定位里,会返回第一个文本属性匹配的链接
link_text
partial_link_text(子串匹配,只要输入自字符串即可匹配)
<html>
<body>
<p>Are you sure you want to do this?</p>
<a href="continue.html">Continue</a>
<a href="cancel.html">Cancel</a>
</body>
<html>
定位方法:
continue_link = driver.find_element_by_link_text('Continue')
continue_link = driver.find_element_by_partial_link_text('Conti')
3 css选择器定位
如果你能用css选择器的语法来表述一个元素,那么就选这个,只返回匹配的第一个
<html>
<body>
<p class="content">Site content goes here.</p>
</body>
<html>
定位p元素
content = driver.find_element_by_css_selector('p.content')
4XPath定位
XPath是用来定位XML文档节点的语言。不过HTML可以看成是XML(XHTML)的一种实现。Selenium用户可以使用这个强力的语言来瞄准Web应用的元素。 XPath延伸了用id或者name属性来定位的单一方法,开创了许多可能性
<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="continue" type="submit" value="Login" />
<input name="continue" type="button" value="Clear" />
</form>
</body>
<html>
查找form表单可以
login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_xpath("//form[1]")
login_form = driver.find_element_by_xpath("//form[@id='loginForm']")