当前位置:   article > 正文

Selenium学习之基础知识点(一)_selenium学者应该掌握什么

selenium学者应该掌握什么

1.背景知识及概念

Selenium 是一个用于网站应用程序自动化的工具,它可以直接运行在浏览器中,就像真正的用户在操作一样。提示用于实现网页操控与数据爬取,其抓取网页信息是在谷歌开发者工具的Elements选项卡里。

2.那么,如何将网页数据告知Selenium,并让它自动操控网页并读取数据呢?

首先,是一定要安装好Selenium及webdriver的配置环境的,这部分在前面已经说过,这里就不再赘述了,有需要的话,可以自取,希望对大家有帮助。下面,我们就简单的说一下Selenium 的应用

3.网页元素定位

Selenium定位的方式有八种:需要注意的是,以下几种方式定位的是匹配到的第一个元素的值(如果有多个相同属性值的话),如果有多个相同的属性值,我们想全部获取,之后我们来说那个定位方式

find_element_by_id()

find_element_by_name()   这两种是根据属性id,name实现定位

find_element_by_class_name()

find_element_by_tag_name()   这两种是通过HTML标签类型和属性class实现定位

find_element_by_link_text()            这两种是同过标签值实现定位

find_element_by_partial_link_text()  partial_link是模糊匹配

find_element_by_xpath()                 这两种是通过定位选择器(标签的路径)实现定位

find_element_by_css_selector()

 

4.测试

下面我们以豆瓣电影网举例说明:

  1. from selenium import webdriver
  2. drivr = webdriver.Chrome()
  3. url = 'https://movie.douban.com/'
  4. # 以属性id,name实现定位
  5. driver.find_element_by_id('inp-query').sent_keys('龙岭迷窟')
  6. driver.find_element_by_name('search_text').sent_keys('国王:永远的君主')
  7. # 以属性class和html标签实现定位,返回定位内容
  8. class_name = driver.find_element_by_class_name('nav-items').text
  9. tag_name = driver.find_element_by_tag_name('div').text
  10. print('由class_name实现定位: ',class_name)
  11. print('由tag_name实现定位: ',tag_name)
  12. # 通过标签值实现定位:
  13. link_text = driver.find_element_by_link_text('排行榜').text
  14. partial_link_text = driver.find_by_partial_link_text('全部正在热映').text
  15. print('由link_text实现定位: ',link_text)
  16. print('由link_text实现定位: ',link_text)
  17. # 通过xpath,css selector,标签路径实现定位
  18. xpath= driver.find_element_by_xpath('//*[@id="db-nav-movie"]/div[1]/div/div[1]/a')
  19. css_selector= driver.find_element_by_class_selector('#db-nav-movie > div.nav-wrap > div > div.nav-logo > a')
  20. print('由xpath实现定位: ',xpath)
  21. print('由css_selector实现定位: ',css_selector)

 

5.测试截图

二.如果想要获取全部相同元素的匹配值:

将上述八种方法中的element改为elements即可

find_elements_by_id()

find_elements_by_name()   这两种是根据属性id,name实现定位

find_elements_by_class_name()

find_elements_by_tag_name()   这两种是通过HTML标签类型和属性class实现定位

find_elements_by_link_text()            这两种是同过标签值实现定位

find_elements_by_partial_link_text()  partial_link是模糊匹配

find_elements_by_xpath()                 这两种是通过定位选择器(标签的路径)实现定位

find_elements_by_css_selector()

补充的一点:对于xpath,css_selector的语法,一种简单的方法是可以在一般情况下在Chrome开发者工具里的Element标签里,右击想要定位的标签,(对于xpath,css_selector语法的编写:读者可以进一步查阅资料,进一步了解语法的编写规则)

copy-->选择copy path或者xpath,截图如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/111674
推荐阅读
相关标签
  

闽ICP备14008679号