分享

Selenium基本用法

 华科小丁 2023-06-15 发布于江苏

Selenium 提供了 8 种定位单个节点的方法,如下所示:

定位节点方法
方法说明
find_element_by_id()通过 id 属性值定位
find_element_by_name()通过 name 属性值定位
find_element_by_class_name()通过 class 属性值定位
find_element_by_tag_name()通过 tag 标签名定位
find_element_by_link_text()通过<a>标签内文本定位,即精准定位。
find_element_by_partial_link_text()通过<a>标签内部分文本定位,即模糊定位。
find_element_by_xpath()通过 xpath 表达式定位
find_element_by_css_selector()通过 css 选择器定位


假设下面代码某个页面的代码片段,如下所示:

<html><head><body link="#cc0916">  <a id="logo" href="http://c." onclick="">   <form id="form" class="fm" name="f" action="c.">    <span class="btn"></span>    <input id="kw" class="s_ipt_wr" name="wd" value="" maxlength="255" autocomplete="off"></body></head></html>

下面使用表格中提供的方法定位 input 输出框。如下所示:

#创建browser是浏览器对象browser = webdriver.Chrome()#访问某个url得到上述代码片段browser.get('url')#通过id定义输入框browser.dr.find_element_by_id("kw")#通过class定义browser.find_element_by_class_name("s_ipt_wr")#通过name定位browser.find_element_by_name("wd")#通过tag name定位:browser.find_element_by_tag_name("input")#通过xpath定位browser.find_element_by_xpath("//*[@id='kw']")#通过css选择器定位browser.find_element_by_css_selector("#kw")

通过 a 标签内的文本内容定位节点,如下所示:

<a class="vip" href="http://c.">C语言中文网</a>
<a class="search" href="http://www.baidu.com">hao123</a>

示例如下:

#使用全部文本内容定位链接browser.find_element_by_link_text("c语言中文网")#使用部分文本内容定位链接browser.find_element_by_partial_link_text("123")

如果您想定位一组元素,方法如下所示:

find_elements_by_id()
find_elements_by_name()
find_elements_by_class_name()
find_elements_by_tag_name()
find_elements_by_link_text()
find_elements_by_partial_link_text()
find_elements_by_xpath()
find_elements_by_css_selector()

定位一组元素的方法与定位单个元素类似,唯一的区别就是 element 后面多了一个 s(表示复数),因此上述方法的返回值是一个列表,您可以使用 for 循环拿到所有的元素节点。

控制浏览器

Selenium 可以操控浏览器的窗口大小、刷新页面,以及控制浏览器的前进、后退等

1) 设置浏览器窗口大小、位置

from selenium import webdriverdriver = webdriver.Chrome()driver.get("http://www.baidu.com")#参数数字为像素点driver.set_window_size(480, 800)#设置窗口位置driver.set_window_position(100,200)#同时设置窗口的大小和坐标driver.set_window_rect(450,300,32,50)#退出浏览器driver.quit()

2) 控制网页前进、后退、刷新页面

from selenium import webdriverdriver = webdriver.Chrome()# 访问C语言中文网首页first_url= 'http://c.'driver.get(first_url)# 访问c语言教程second_url='http://c./c/'driver.get(second_url)# 返回(后退)到c语言中文网首页driver.back()# 前进到C语言教程页driver.forward()# 刷新当前页面相当于F5driver.refresh() # 退出/关闭浏览器driver.quit()

WebDriver常用方法

上文中介绍了如何定位元素,以及如何设置浏览的大小、位置。 定位元素节点只是第一步, 定位之后还需要对这个元素进行操作, 比如单击按钮,或者在输入框输入文本 , 下面介绍 WebDriver 中的最常用方法:

# 请求url
get(url)
# 模拟键盘输入文本
send_keys (value)
# 清除已经输入的文本
clear():
# 单击已经定位的元素
click():
# 用于提交表单,比如百度搜索框内输入关键字之后的“回车” 操作
submit():
#返回属性的属性值,返回元素的属性值,可以是id、name、type 或其他任意属性
get_attribute(name)
# 返回布尔值,检查元素是否用户可见,比如 display属性为hidden或者none
is_displayed()

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多