selenium-webdriver循环点击百度搜索结果以及获取新页面的handler

  webdriver还是很有意思的,之前用过Ruby的watir的自动化测试框架,感觉selenium的这套框架更好一些,很容易就可以上手。我虽然不做自动化这块,不过先玩玩再说,多学点东西总之还是好一些的。

  

 1 # coding:utf-8
 2 import time
 3 from selenium import webdriver
 4 import unittest
 5 from pythontest.commlib.baselib import *
 6
 7
 8 #引用封装后的日志系统
 9 log = TestLog().getlog()
10 class BaiBu(unittest.TestCase):
11     u‘‘‘【百度.类】‘‘‘
12     def setUp(self):
13         self.browser = webdriver.Firefox()
14         self.browser.get("http://www.baidu.com")
15         self.browser.implicitly_wait(10)
16         #self.base = Screen(self.browser)
17
18     def tearDown(self):
19         self.browser.quit()
20
21     def test_search(self):
22         log.info("搜索前title:" + self.browser.title.encode("utf-8") )  #得到的title中文编码格式,非UTF-8格式,需要转码
23         #输入关键字,关键字任意
24         self.browser.find_element_by_class_name("s_ipt").send_keys(u"北京尚拓云测 软件测试外包公司")
25         self.browser.find_element_by_class_name("s_btn").submit()       #此处class属性有三个值,中间使用空格隔开,取其中一值
26         #点击搜索结果
27         self.browser.find_element_by_xpath(".//*[@id=‘2‘]/h3/a").click()        #根据xpath识别元素
28         time.sleep(3)
29         log.info("结果页:" + self.browser.title.encode("utf-8") )      #转码utf-8
30         self.assertIn("软件测试",self.browser.title.encode("utf-8"))       #断言,转码
31         time.sleep(5)
32         ‘‘‘接下来的工作,是获取新页面的handler,以及循环点击搜索结果‘‘‘
33
34 if __name__ == "__main__":
35     unittest.main()

明天有时间再优化,根据id进行随机数选取。可以参考我之前Ruby的一个自动化测试框架:http://www.cnblogs.com/zhuque/archive/2012/11/30/2796866.html

原文地址:https://www.cnblogs.com/zhuque/p/8322275.html

时间: 2024-08-30 03:10:58

selenium-webdriver循环点击百度搜索结果以及获取新页面的handler的相关文章

浏览器点击百度搜索结果之后,原搜索页面出现重定向乱码不断刷新问题的分析和解决

一.出现问题的环境: 1. ubuntu 14.04 LTS 2. 浏览器:Firefox 45.0.1 Mozilla Firefox for Ubuntu 二.出现问题的具体情况: 1. 用百度(其他搜索引擎没有出现类似问题)进行搜索,点击搜索结果后出现的新网页正常,但是原来的搜索结果出现了问题,如图所示 图一 图二      原来的搜索结果进行了自动刷新,并显示了乱码的搜索结果 每次点击搜索结果后,都要后退好麻烦,不能忍... 2.由于尝试了其他的搜索引擎没有出现问题,所以分析问题应该和百

百度搜索将推出“惊雷算法”打击网站刷点击作弊行为

百度站长平台11月刚改版为百度搜索资源平台,各位站长应该还记得"闪电算法"吧?上个月的闪电让各位站长吃的消吗?而今天,就在今天凌晨百度搜索资源平台发布新的算法预告"惊雷算法"! 公告原文如下: 百度搜索推出惊雷算法 严厉打击刷点击作弊行为 发布日期:2017-11-20 00:00:00 百度搜索将于11月底推出惊雷算法,严厉打击通过刷点击,提升网站搜索排序的作弊行为:以此保证搜索用户体验,促进搜索内容生态良性发展.惊雷算法会例行产出惩罚数据,对存在点击流量作弊的行

转载 基于Selenium WebDriver的Web应用自动化测试

转载原地址:  https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中,需要大量的手动操作来验证某些功能.开发人员在开发过程中,需要访问其应用并且验证其功能是否正常运行,反复调试重复验证.系统维护人员也需要经常访问其应用,以确保系统的正常运行.如上所述的这些操作需要花费大量的时间和人力,如能引入自动化测试代替人工重复操作,将极大地提高团队的生产效率.在本文中,我们将介绍

AJAX实现分页--模拟百度搜索分页

第一部分:效果与分析 1.百度分页组件: 2.自己实现的分页: 3.分析: 百度搜索分页,如果总页数大于10,用户最多只能看到10页内容,不足10页显示全部,当点击下一页时,数字页标向前移动一个单位,当点击上一页时向后移动一个单位. 第二部分:后台实现: 1.实现思路: 后台的处理思想是这样的,通过AJAX向后台发送请求,携带一个分页对象PageBean传过去,查询完毕后返回一个新的PageBean对象. 前台传入的PageBean对象参数: 属性 名称 是否必须 默认值 pageSize 每页

5月5日 百度搜索技巧

1.“”——精确匹配 如果输入的查询词很长,百度在经过分析后,给出的搜索结果中的查询词,可能是拆分的.如果您对这种情况不满意,可以尝试让百度不拆分查询词.给查询词加上双引号,就可以达到这种效果.如:“上海大学”,搜索结果中的上海大学四个字就不会是分开的. 2.(-)——消除无关性 逻辑“非”的操作,用于排除无关信息,有利于缩小查询范围.百度支持"-"功能,用于有目的地删除某些无关网页,语法是"A -B".如:要搜寻关于"武侠小说",但不含&quo

使用Java调用百度搜索

search托管于github 如何利用Java来调用百度搜索,更多细节请到github上查看search 自己没搜索引擎,又想要大规模的数据源,怎么办?可以对百度搜索善加利用,以小搏大,站在巨人的肩膀上.有很多的应用场景可以很巧妙地借助百度搜索来实现,比如网站的新闻采集,比如技术.品牌的新闻跟踪,比如知识库的收集,比如人机问答系统等,我之前做的一个准确率达百分之九十几的人机问答系统的数据源,其中一部分就是充分利用了百度搜索.我们可以很容易地扩展到其他的搜索引擎,使用JSoup+CSSPath技

python+selenium实现【百度搜索设置】

from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsimport time driver = webdriver.Chrome()url = "http://www.baidu.com"driver.get(url)driver.maximize_window()driver.implicitly_wait(5) #进入搜索设置项link = driv

selenium webdriver学习--通过id、name定位,输入内容,搜索,关闭操作

selenium webdriver学习--通过id.name定位,输入内容,搜索,关闭操作: 打开谷歌浏览器,输入不同的网站,搜索框的定位含有不同元素(有时为id,有时为name) import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver; impor

webdriver处理循环点击

未经作者允许,禁止转载!python selenium webdriver处理循环点击 循环点击主要是针对一些同类的选择按钮,或者下拉选项,或者是选择页码~~~~~~ 如下面两张图片显示的将年份进行循环选择,和将鼠标悬浮循环选择 下面是用python写的 selenium webdriver处理循环点击代码,相关的java代码随后在发表 from selenium import webdriver import time from selenium.webdriver.common.action