Selenium须要告知其如何去定位元素,来模拟用户动做。例如要操做Bing搜索页。
首先要找到搜索框与搜索按钮;
经过键盘输入检索的关键字;
用鼠标单击搜索按钮;
提交搜索请求。
Selenium可以模拟上面描述的动做,但Selenium并不理解如何在搜索框中输入关键字或单击搜索按钮的操做。Selenium须要代码告诉其如何定位搜索框或搜索按钮,从而实现模拟人工的操做。
Selenium提供了多种方法用于定位元素(find_elementby),其中号表明可变的方法,例如id、name等。
Selenium提供了8种find_elementby方法用于定位元素。本节咱们会分别介绍这些方法,8种find_elementby方法以下表所示。
find_element_by_id:经过元素的ID属性值来定位元素;
find_element_by_name:经过元素的name属性值来定位元素;
find_element_by_class_name:经过元素的class属性值来定位元素;
find_element_by_xpath:经过Xpath来定位元素;
find_element_by_tag_name:经过元素的tag name来定位元素;
find_element_by_css_selector:经过CSS选择器来定位元素;
find_element_by_link_text:经过元素标签对之间的文本信息来定位元素;
find_element_by_partial_link_text:经过元素标签对之间的部分文本信息来定位元素;css
id(find_element_by_id)是Selenium中较经常使用的定位方式,由于通常不会存在id重名的元素。
目前大部分技术研发团队的开发方式,都采用的是先后端分离的技术。不少团队在前端代码提交后,在审核代码时,都会检查元素的属性定义,其中id的惟一就是检查的一项。所以find_element_by_id方法是查找页面上元素的最佳方法。
搜索框元素的属性描述HTML代码以下:html
<input class="b_searchbox" id="sb_form_q" name="q" title="输入搜索词" type="search" value="" maxlength="100" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" aria-controls="sw_as" aria-autocomplete="both" aria-owns="sw_as">
所以id=“sb_form_q”的定位方法就是find_element_by_id(“sb_form_q”),如图所示。
Selenium经过FireFox浏览器驱动操做输入框的代码以下:前端
from selenium import webdriver driver=webdriver.Firefox() driver.get("https://cn.bing.com/") driver. find_element_by_id("sb_form_q").send_keys("bella") driver.quit() # 关闭浏览器
打开PyCharm编译器,建立1个工程,且在该工程下建立一个.py文件(py文件名本身命名便可,如Demo.py),而后将如上代码敲入到建立的py文件中,如图所示。
右键单击选择Run 便可(如 Run ‘Demo’)运行代码,观察到以下操作。web
【测试全系列视频课程】请点击我哦.....
(https://edu.51cto.com/lecturer/968349.html)
Selenium3自动化测试【13】FireFox与Chrome浏览器元素定位后端
图书京东、当当有售
京东:https://item.jd.com/12784287.html
当当:http://product.dangdang.com/29177828.htmlapi
Selenium3自动化测试【13】FireFox与Chrome浏览器元素定位浏览器