selenium-51job自动化测试(css选择器选择元素)

登录 51job ,
http://www.51job.com

输入搜索关键词 "python", 地区选择 "杭州"(注意,如果所在地已经选中其他地区,要去掉),
搜索最新发布的职位, 抓取页面信息。 得到如下的格式化信息

Python开发工程师 | 杭州纳帕科技有限公司 | 杭州 | 0.8-1.6万/月 | 04-27
Python高级开发工程师 | 中浙信科技咨询有限公司 | 杭州 | 1-1.5万/月 | 04-27
高级Python开发工程师 | 杭州新思维计算机有限公司 | 杭州-西湖区 | 1-1.5万/月 | 04-27

from selenium import webdriverdriver = webdriver.Chrome(r"D:\for myself\Google\Chrome\Application\chromedriver.exe")driver.implicitly_wait(10)driver.get(‘http://www.51job.com‘)driver.find_element_by_id(‘kwdselectid‘).send_keys(‘python‘)driver.find_element_by_id(‘work_position_input‘).click()cityEles = driver.find_elements_by_css_selector(‘#work_position_click_center_right_list_000000 em‘)for city in cityEles:    cityName = city.text#打印城市名字    selected = city.get_attribute(‘class‘)==‘on‘#判断    if (cityName == ‘杭州‘and not selected)or\            (cityName !=‘杭州‘ and selected):#城市名字是杭州没有被点击或者城市名字不是杭州被点击了        city.click()# 保存城市选择driver.find_element_by_id(‘work_position_click_bottom_save‘).click()

# 点击搜索driver.find_element_by_css_selector(‘.ush  button‘).click()

# 搜索结果分析jobs = driver.find_elements_by_css_selector(‘#resultList  div.el‘)

for job in jobs:    # 去掉第一行:标题行    if ‘title‘ in job.get_attribute(‘class‘):        continue

    filelds = job.find_elements_by_tag_name(‘span‘)    strField = [fileld.text for fileld in filelds]    print (‘ | ‘.join(strField))

driver.quit()


原文地址:https://www.cnblogs.com/iamshasha/p/11106376.html

时间: 2024-10-30 04:52:09

selenium-51job自动化测试(css选择器选择元素)的相关文章

在selenium中使用css选择器进行元素定位

Sizzle Css3还提供一些直接选取form表单元素的伪类 :input: Finds all input elements (includes textareas, selects, and buttons). :text, :checkbox, :file, :password, :submit, :image, :reset, :button: Finds the input element with the specified input type (:button also fin

Selenium(五):CSS选择器(二)

1. CSS选择器 1.1 选择语法联合使用 CSS selector的另一个强大之处在于:选择语法可以联合使用. html代码: <div id='bottom'> <div class='footer1'> <span class='copyright'>版权</span> <span class='date'>发布日期:2019-11-26</span> </div> <div class='footer2'&

jQuery选择器选择元素的方法完整篇

    1. 先说说通过位置选择的几个操作: :first:默认情况下是相对整个页面来说的第一个,如:li:first表示整个页面的第一个li元素,而ul li:first表示整个页面的第一个li元素,并且是在ul下的子元素: :last:同上了,只是是最后一个而已: :first- child:为每个父元素匹配第一个子元素,如li:first-child返回每个ul的第一个li元素.可以这样理解,页面中的元素有相同的父元素 的,并且里面又包含li元素的,那么就取第一个li元素,每个子类集合都要

css选择器(1)——元素选择器、类名和id选择器

css的主要优点之一就是它能很容易地向所有同类型的元素应用一组样式.当然它是通过选择器来实现这一点的. 基本规则结构: 语法= 选择器 +声明块 1.元素选择器--直接使用html元素名,指向文档元素 如果想给所有段落都添加缩进的话使用元素选择器是最好的选择 p{ text-indent:2em; } 2.类选择器和id选择器--独立于文档元素来指定样式 a)类选择器: 给部分段落文本加粗,以及列表的某些项,这时可以使用类选择器来应用样式而不需要像使用元素选择器一样考虑具体涉及的元素,只要事先给

通过类选择器选择元素

js中可以通过getElementById和getElementsByTagName来获取html中的元素,但这远远不够,html中是有比较多的类元素,我们需要通过类来获取元素: 思路是先新建一个数组,然后通过getElementsByTagName获取与类名有相同标签名的所有标签,然后再比较哪些标签的类名是要目标类名,将它存到数组中,最后返回数组. 1 function getClass(tagname, classname) { 2 var results = [];//新建一个数组 3 v

css 选择器 &amp; UI元素的伪类选择器 &amp; 伪元素选择器

UI元素的伪类选择器 1. :focus  用来选取获取焦点事件 2. :enabled 用来指定当元素处于可用状态时的样式 3. :disable  用来指定元素处于不可用时的状态    表单里应用较多 4. read-only 用来获取元素属于只读状态时 5. read-write 用来匹配可读和可写的元素  input search 6. :checked  用来获取单选框处于选取状态时的样式 7. :default 选取用来选取,打开时默认选取状态时单选框 8.     :indeter

python + selenium webdriver 复合型css样式的元素定位方法

<div class="header layout clearfix"></div> 当元素没有id,没有name,没有任何,只有一个class的时候,应该如何去定位这个元素 1.页面存在多个div,使用find_elements_by_tag_name("div")[x] 这种方法可以使用,但是要去数第几个div,太坑 2.使用find_element_by_class_name("header layout clearfix&q

[css选择器]伪元素和伪类

伪元素 伪元素可以创建一些文档语言无法创建的虚拟元素. 比如:文档语言没有一种机制可以描述元素内容的第一个字母或第一行,但伪元素可以做到(::first-letter.::first-line). 同时,伪元素还可以创建源文档不存在的内容,比如使用 ::before 或 ::after. 不能用伪元素插入对交互有实质性影响的内容,以避免css不能正确加载.另外,屏幕阅读器也没有统一的方式解释伪元素,有的会直接忽略它们 伪类 原文地址:https://www.cnblogs.com/L-xmin/

css选择器指定元素中第几个子元素

tr td:nth-child(2){ background-color:gray; } 就是tr当中的td的第二个td的属性 tr:nth-child(2n+0){ background-color:#F0F0F0; } 这个是tr的2的倍数的 使用公式 (an + b).描述:表示周期的长度,n 是计数器(从 0 开始),b 是偏移值. 在这里,我们指定了下标是 3 的倍数的所有 p 元素的背景色: p:nth-child(3n+0) { background:#ff0000; }