Skip to content
This repository has been archived by the owner on Jul 30, 2020. It is now read-only.

定位方式

Entromorgan edited this page Oct 3, 2019 · 6 revisions

Overall

在浏览器中按F12/Ctrl+Shift+I(默认)/更多工具->开发者工具打开Chrome/Firefox内置页面源码查看工具

可从中找到各种定位元素,如title、Xpath、class name、tag name等

具体定位方法需查看selenium文档:https://www.seleniumhq.org/docs/ (或自行搜索)

Functions

此处简单记录常用的元素定位函数,可参考如下几个定位相关的教程:

  1. https://www.cnblogs.com/minieye/p/5803640.html

  2. https://www.jianshu.com/p/7e7aa3ee783d

  3. https://www.cnblogs.com/zuodaozhudemeng/p/7487798.html

find系

直接查找,方便。如果将下述方法中的element改为elements,将返回所有符合条件的结果(一个list)

  • 基于class name的查找:find_element_by_class_name('class_name')

  • 基于id的查找:find_element_by_id('id')

  • 基于tag name的查找:find_element_by_tag_name('tag_name')

  • 基于xpath的查找:find_element_by_xpath('xpath')

  • 基于页面title的查找:driver.title.find('title')

EC系

主要用于配合WebDriverWait中的等待函数until和By中的各种元素定位方法使用,提高稳定性

其中locator格式为(By.某种定位方式, '对应定位方式的内容')

某种定位方式包含:XPATH, ID, NAME, CLASS_NAME, TAG_NAME等

  • EC.text_to_be_present_in_element(locator, 'text') 若text在locator中存在,返回True,否则返回False

  • EC.presence_of_element_located(locator) 若locator定位成功,返回True,否则返回False

  • EC.title_contains('target_title') 若title中含有target_title,返回True,否则返回False

Elements

本代码中用到的title如下:

  1. '大麦网-全球演出赛事官方购票平台' # 大麦网官网标题

  2. '大麦登录' # 大麦网登录页面标题

  3. '支付' # 支付页面标题

本代码中用到的Xpath如下:

  1. '/html/body/div[2]/div[2]/div/div[2]/div[2]/div[1]' # 实名者/观演人栏

本代码中用到的class name如下:

  1. perform__order__select # 本类包括场次选项和票档选项

  2. select_left # 选项的左侧项,包括场次和票档

  3. select_right_list_item # 选项的右侧项,包括场次1,2,3...和票档1,2,3...

  4. presell # 场次选项的左上角标,包括无票和预售

  5. notticket # 票档选项的左上角标,若存在,则为缺货登记

  6. buybtn # 目标购票页面中的抢购按钮,其text内容包含多种情况,如即将开抢、立即预订、立即购买、选座购买、提交缺货登记

本代码中用到的tag如下:

  1. label # 实名者(标签+勾选框)

  2. input # 实名者(勾选框)

  3. button # 同意以上协议并提交订单

Clone this wiki locally