python-web根据元素属性进行定位的方法
作者:MeriaChen 发布时间:2021-05-04 04:22:35
标签:python,web,定位
1. 根据属性ID值进行定位
def test_find_element_by_id(self):
# 定位搜索文本框
search_input = self.driver.find_element_by_id("kw")
# 输入关键字
search_input.send_keys("马云")
# 定位搜索按钮
search_button = self.driver.find_element_by_id("su")
# 点击搜索按钮
search_button.click()
# 喘口气
time.sleep(2)
# 断言结果
actual_result = self.driver.page_source
expect_result = "马云"
self.assertIn(expect_result, actual_result)
2. 根据属性CLASS值进行定位
def test_find_element_by_class_name(self):
# 定位搜索文本框
search_input = self.driver.find_element_by_class_name("s_ipt")
# 输入关键字
search_input.send_keys("奥巴马")
# 定位搜索按钮
search_button = self.driver.find_element_by_id("su")
# 点击搜索按钮
search_button.click()
# 喘口气
time.sleep(2)
# 断言结果
actual_result = self.driver.page_source
expect_result = "奥巴马"
self.assertIn(expect_result, actual_result)
3. 根据属性NAME值进行定位
def test_find_element_by_name(self):
# 定位搜索文本框
search_input = self.driver.find_element_by_name("wd")
# 输入关键字
search_input.send_keys("特朗普")
# 定位搜索按钮
search_button = self.driver.find_element_by_id("su")
# 点击搜索按钮
search_button.click()
# 喘口气
time.sleep(2)
# 断言结果
actual_result = self.driver.page_source
expect_result = "特朗普"
self.assertIn(expect_result, actual_result)
4. 根据标签名称进行定位
5. 根据链接全部内容进行定位
6. 根据链接部分内容进行定位
def test_find_element_by_tag_name(self):
# 定位搜索文本框
search_input = self.driver.find_element_by_class_name("s_ipt")
# 输入关键字
search_input.send_keys("马化腾")
# 定位搜索按钮
search_button = self.driver.find_element_by_id("su")
# 点击搜索按钮
search_button.click()
# 喘口气
time.sleep(2)
# 获取页面的返回结果
# tag_names = self.driver.find_elements_by_tag_name("h3")
# for tag_name in tag_names:
# print(tag_name.text)
# # 通过链接的文本信息进行定位
# link_text = self.driver.find_element_by_link_text(tag_name.text)
# # 对百度的结果依次进行点击
# link_text.click()
# 根据部分链接文字进行定位
pony_infos = self.driver.find_elements_by_partial_link_text("马化腾")
for pony_info in pony_infos:
# 依次打印每个元素的文本信息
print(pony_info.text)
# 断言结果
actual_result = self.driver.page_source
expect_result = "马化腾"
self.assertIn(expect_result, actual_result)
7. 根据xpath进行定位
def test_find_element_by_xpath(self):
# 找到搜索输入框
# search_input = self.driver.find_element_by_xpath('/html/body/div[@id="wrapper"]/div[@id="head"]/div[@class="head_wrapper"]/div[@class="s_form"]/div[@class="s_form_wrapper soutu-env-nomac soutu-env-index"]/form[@class="fm"][@id="form"]/span[@class="bg s_ipt_wr quickdelete-wrap"]/input[@id="kw"][@class="a_ipt"]')
search_input = self.driver.find_element_by_xpath('//*[@id="kw"]')
# 输入关键字
search_input.send_keys("天黑请闭眼")
# 找到搜索按钮
# search_button = self.driver.find_element_by_xpath('/html/body/div[@id="wrapper"]/div[@id="head"]/div[@class="head_wrapper"]/div[@class="s_form"]/div[@class="s_form_wrapper soutu-env-nomac soutu-env-index"]/form[@class="fm"][@id="form"]/span[@class="bg s_btn_wr"/input[@id="su"][@class="bg s_btn"]')
search_button = self.driver.find_element_by_xpath('//*[@id="su"]')
# 点击搜素按钮
search_button.click()
# 喘口气
time.sleep(1)
# 断言结果
expect_value = "天黑请闭眼"
actual_value = self.driver.page_source
self.assertIn(expect_value,actual_value)
8. 根据css选择器进行定位
def test_find_element_by_css_selector(self):
# search_input = self.driver.find_element_by_css_selector("#kw")
search_input = self.driver.find_element_by_css_selector("input#kw")
search_input.send_keys("狼人杀")
search_button = self.driver.find_element_by_css_selector("input.bg.s_btn")
search_button.click()
# 喘口气
time.sleep(1)
# 断言结果
expect_value = "狼人杀"
actual_value = self.driver.page_source
self.assertIn(expect_value, actual_value)
总结
以上所述是小编给大家介绍的python-web根据元素属性进行定位的方法网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://blog.csdn.net/MeriaChen/article/details/103515431
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 接口(python 中的协议)的多种不同的实现方式即为多态。多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属
- Python反转二维数组的行和列代码如下:import numpy as nparr=np.arange(12).reshape(4,3)p
- 前言前两篇我们分别爬取了糗事百科和妹子图网站,学习了 Requests, Beautiful Soup 的基本使用。不过前两篇都是从静态 H
- ASP(英文全称Active Server Pages)是一个编程环境,在其中,可以混合使用HTML、脚本语言以及组件来创建服务器端功能强大
- tensorflow里面提供了实现图像进行裁剪和填充的函数,就是tf.image.resize_image_with_crop_or_pad
- 做设计的时候,如何配色是经常让人头痛的问题,尽管很多时候,很多人都说对于色彩的掌握更多的是靠感觉,但是不得不说,感觉也是要有依据的。所以颜色
- 在下面这3篇文章中我们给出了手工输入代码的信号与槽的使用方法,因为采用这种方法介绍时,会简单一些,如果使用Qt Designer来介绍这些功
- 【代码示例】 [code=SQL] DELIMITER $$ DROP FU
- 如果你有一堆 PPT 要做,他们的格式是一样的,只是填充的内容不一样,那你就可以使用 Python 来减轻你的负担。PPT 分为内容和格式,
- 内容摘要:MySQL易学易用,附带丰富的技术文档,这两个因素使之被广泛应用。然而,随着MySQL发展加快,即使一个MySQL老手有时也会为该
- 背景近期看到一篇文章,真的感叹作者的洞察力,在开发时有可能就会犯这样的错误,所以一定要多学习,多实践。其问题就是你在提交事务时,如果中间有其
- 注释:在大多数的情况下,修改MySQL是需要有mysql里的root权限的,所以一般用户无法更改密码,除非请求管理员。方法1使用phpmya
- 代码如下:CREATE TABLE #tmptb(tbname sysname,tbrows int ,tbREserved varchar
- 现在我主要教大家如何去实战,做一个简易的知乎日报API 首先你要熟悉django的基本用法,会写模型,会写视图函数,会配置url。1.配置字
- #!/usr/bin/env python# -*- coding:utf-8 -*-#导入random和string模块import ra
- 前言: 在爬虫过程中,我们可能需要重复的爬取同一个网站,为了避免重复的数据存入我们的数据库中 通过实现增量去重 去解决这一问题 本文还针对了
- 1. 为什么要使用正则表达式?首先,大家来看一个例子。一个文本文件里面存储了一些市场职位信息,格式如下所示:Python3 高级开发工程师
- 刚刚心血来潮,编了一个国际域名查询的功能页面,比较简单,没有做什么美化和修饰,主要利用了服务器端的XMLHTTP访问第三方服务器实现域名查询
- 在设计网页时,没有比页面的外观更重要的了。所以,如果发现设计人员十分关注字体及字体大小,我并不感到惊奇。使用CSS来编辑字体有各种各样的方法
- 第一次见到《Web标准和SEO应用实践》是在我们UCD书友会《设计沟通十器》新书发布现场,机械工业出版社的朋友还带了很多相关新书过来,当时本