【Selenium】跳转问题】的更多相关文章

简介 上一个博文已经讲述了如何使用selenium跳过webdriver检测并爬取天猫商品数据,所以在此不再详细讲,有需要思路的可以查看另外一篇博文. 源代码 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.w…
目录 简介 编写思路 使用教程 演示图片 源代码 @(文章目录) 简介 现在爬取淘宝,天猫商品数据都是需要首先进行登录的.上一节我们已经完成了模拟登录淘宝的步骤,所以在此不详细讲如何模拟登录淘宝.把关键点放在如何爬取天猫商品数据上. 过去我曾经使用get/post方式进行爬虫,同时也加入IP代理池进行跳过检验,但随着大型网站的升级,采取该策略比较难实现了.因为你使用get/post方式进行爬取数据,会提示需要登录,而登录又是一大难题,需要滑动验证码验证.当你想使用IP代理池进行跳过检验时,发现登…
目录 简介 编写思路 使用教程 演示图片 源代码 @(文章目录) 简介 模拟登录淘宝已经不是一件新鲜的事情了,过去我曾经使用get/post方式进行爬虫,同时也加入IP代理池进行跳过检验,但随着大型网站的升级,采取该策略比较难实现了.因为你使用get/post方式进行爬取数据,会提示需要登录,而登录又是一大难题,需要滑动验证码验证.当你想使用IP代理池进行跳过检验时,发现登录时需要手机短信验证码验证,由此可以知道旧的全自动爬取数据对于大型网站比较困难了. selenium是一款优秀的WEB自动化…
背景: 周六产品给我反馈:支付成功页面后会提示这个,问自动化为什么没有发现这样的问题 第一反应:这个地址肯定被举报了,我也肯定没有设置过安全链接,因为都没有见过这样的网址,如果有问题,应该会直接出错,先本地重现 1.先确认了发生的时间,是在昨天就发生了,而我的定时任务是在晚上2点跑,正常是可以发现这样的问题,脚本的场景是:一旦支付成功,需要获取页面上的内容,一旦跳出这样的页面,文本获取不到,用例就不在执行,我有试过用脚本跑了一遍 确认没有发生这样的问题, 2.我有手动的去操作重显场景,还是没有发…
Scrapy——5 下载中间件常用的函数 Scrapy怎样对接selenium 常用的setting内置设置 对接selenium实战 (Downloader Middleware)下载中间件常用函数有哪些 Scrapy怎样对接Selenium 设置setting.py里的DOWNLOADER_MIDDLIEWARES,添加自己编写的下载中间件类  常用的Setting内置设置有哪些 详情可以参考https://scrapy-chs.readthedocs.io/zh_CN/1.0/topics…
但有时候 我们不想要让它打开浏览器去执行 能不能直接在代码里面运行呢 也就是说 有没有一个无形的浏览器呢 恩 phantomJS 就是 它是一个基于 WebKit 的浏览器引擎 可以做到无声无息的操作各种动态网站 比如 js,css选择器,dom操作的 所以对于市面上大多通过 js 渲染的动态网站 难以解析的网站 想要爬取的话 就会使用到 selenium + phantomjs 那么怎么玩呢 在这个页面可以看到 我们需要的数据有 名称 视频地址 描述 观看次数 弹幕数量 发布时间 待会我们就把…
当出现如下图所示的 Windows安全中心弹窗,需要输入用户名和密码时 如何用Python+selenium跳过这个登录. 步骤: 1.在注册表中三个位置各添加两个东西:iexplore.exe 和 explorer.exe 添加步骤:打开注册表(运行命令 regedit) -> 定位到如下三个位置 -> 新建DWORD,输入名称iexplore.exe 和 explorer.exe. 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Exp…
在上一篇中 python爬虫10 | 网站维护人员:真的求求你们了,不要再来爬取了!! 小帅b给大家透露了我们这篇要说的牛逼利器 selenium + phantomjs 如果你看了 python爬虫09 | 上来,自己动 !这就是 selenium 的牛逼之处 那么你应该知道 selenium 是什么了 它能做到自动操作 比如我们上次说的自动百度苍老师 但有时候 我们不想要让它打开浏览器去执行 能不能直接在代码里面运行呢 也就是说 有没有一个无形的浏览器呢 恩 phantomJS 就是 它是一…
处理iframe,selenium提供了3中方法: 1.html的frame有id,传入id 2.html的frame有name,传入name 3.先找到iframe的元素,再传入该元素对象 跳出iframe 1.跳转到iframe后,返回到主窗体 dr.switchTo().defaultContent(); 2.存在多个iframe,跳转到二级iframe后,返回上一级的iframe: dr.switchTo().parentFrame();…
浏览器页面跳转方法记录: from selenium import webdriver import time browser = webdriver.Chrome() first_url='http://www.baidu.com' browser.find_element_by_xpath('//div/div/div/ul/li[1]/strong/a').click() browser.switch_to_window(browser.window_handles[0]) browser…
首先我给自己定义为是一个更新偏执狂.不知道从哪个版本开始,使用selenium驱动打开Firefox浏览器时,会跳转到官网指定页,这个过程真是慢得要死. 为了解决这个问题,我是查了很多资料,解决方案是百度出来的.抱歉,我忘记出处在哪了,代码如下: profile = webdriver.FirefoxProfile() profile.set_preference("browser.startup.homepage", "about:blank") profile.…
记录一次快速实现的python爬虫,想要抓取中财网数据引擎的新三板板块下面所有股票的公司档案,网址为http://data.cfi.cn/data_ndkA0A1934A1935A1986A1995.html. 比较简单的网站不同的页码的链接也不同,可以通过观察链接的变化找出规律,然后生成全部页码对应的链接再分别抓取,但是这个网站在换页的时候链接是没有变化的,因此打算去观察一下点击第二页时的请求 发现使用的是get的请求方法,并且请求里有curpage这个参数,貌似控制着不同页数,于是改动了请求…
Python+selenium自动化测试中Windows窗口跳转方法 #第一种方法 #获得当前窗口 nowhandle=driver.current_window_handle #打开弹窗 driver.find_element_by_name("xxx").click() #获得所有窗口 allhandles=driver.window_handles for handle in allhandles: #比较当前窗口是不是原先的窗口 if handle!=nowhandle: #获…
方法1 在登录时,叫代码等待一段时间,然后手动输入验证码 # coding:utf-8 from selenium import webdriver import time url = 'http://192.168.XXX:7001/AXXXse' driver = webdriver.Chrome() driver.get(url) # 进入登录首页 driver.maximize_window() # 窗口最大化 time.sleep(3) driver.find_element_by_i…
这是我以前遇到的一个网站:人卫临床助手,这个网站比较奇怪,不能点击右键查看源码,但是大家可以使用ctrl+U,打开开发者选项,点击network,然后点击第2页和第3页: 可以看到上面的URL是一模一样的,这是我以前没见过的,可以参考我最早写的博客:python获取动态网站上面的动态加载的数据(初级),那些包里面的URL是不一样的,通过URL可以得到相关的json数据,但在这里是不一样的,所以这里要用selenium模仿键盘输入来爬取数据: #-*- coding:utf-8 -*- from…
python+selenium 元素被定位到而且click()也提示执行成功,但是页面就是没有变化和跳转. 如果多次定位和click(),有时候会跳转. 我遇到很多次就是很郁闷,有人说,操作太快的,页面的元素还没加载出来, 我觉得这是不存在的的,因为我用了隐式等待,driver.implicitly_wait(10). 最后我我发现,在定位元素之前加上sleep(1),这个问题就完美的被解决了. 问题基本定位到了. 原因是, WebElement.click() 之后,没有留足够的时间,就把页面…
刚刚在写Python爬虫的时候用到了selenium , 在跳转新页面时发现无法定位新页面 , 查找不到新页面的元素 一番查询后得到了解决方法 , 便记录下来备忘 , 也与大家分享 # 页面跳转代码... # 方式一 time.sleep(1) search_window = driver.current_window_handle # 此行代码用来定位当前页面 # 方式二 time.sleep(1) driver.switch_to.window(driver.window_handles[0…
selenium基础-跳过验证码 一.方法 设置万能验证码或者屏蔽验证码(最常用的方法) 使用验证码识别工具识别验证码 通过selenium操作cookies 直接使用配置文件的webdriver 二.用selenium操作cookie绕过验证码 cookies和session都是有服务器生成,cookie将保留在浏览器本地,session记录在服务器端 cookie的几大属性 name:名字(键),cookies的必须字段 values:值 domain:域,cookie的作用域名 path:…
直接上代码: __author__ = 'zc' import unittest class demoSkipTest(unittest.TestCase): a = 70 b = 50 print(a%b) def test_add(self): """加法""" result = self.a + self.b self.assertEqual(result, 40) def test_add_2(self): self.skipTest(&…
转载至http://www.cnblogs.com/yicaifeitian/p/5198871.html 为了解决这个问题,我是查了很多资料,解决方案是百度出来的.抱歉,我忘记出处在哪了,代码如下: profile = webdriver.FirefoxProfile() profile.set_preference("browser.startup.homepage", "about:blank") profile.set_preference("st…
在运行测试时,需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest单元测试框架提供了实现这些需求的装饰器. 1.unittest.skip(reason) 无条件地跳过装饰的测试,说明跳过测试的原因 2.unittest.skipIf(condition,reason) 如果条件为真时,跳过装饰的测试. 3.unittest.skipUless(condition,reason) 跳过装饰的测试,除非条件为真 4.unittest.expe…
/** * rewrite the get method, adding user defined log</BR> * 地址跳转方法,使用WebDriver原生get方法,加入失败重试的次数定义. * * @param url the url you want to <span id="2_nwp" style="width: auto; height: auto; float: none;"><a target=_blank id=…
前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,直接跳过就行,节省用例执行时间. 一.skip装饰器 skip装饰器一共有四个    @unittest.skip(reason) Unconditionally skip the decorated test. reason should describe why the te…
跳过预期和预期失败 在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest提供了实现这些需求的装饰器. --unittest.skip(reason) 无条件地跳过装饰的测试,说明跳过的原因. --unittest.skipIf(condition,reason) 如果条件为真时,跳过装饰的测试. --unittest.skipUnless(condition,reason) 除非条件为真,跳过装饰的测试. --unitte…
1. alert: 警告框,只是一个提示信息,只有一个确定按钮,起提示用户的作用: 2.confirm: 确认框,确定和取消按钮会带来不同的结果.点击确定会执行操作,点击取消按钮会取消操作: 3.prompt: 带输入框的确认框,输入的数据会返回页面做处理,点确定和取消会得到不同的结果. 对于弹框的几种处理方法 a=driver.switch_to.alert.text#获取当前弹框的文本信息 print(a)#将文本信息打印出来 driver.switch_to.alert.accept()#…
这个网址登陆的单元测试代码都写在一个文件中,方便初学者查看和调试:实际测试工作中根据情况进行模块化处理. 话不多说,分布上代码 一.import必要模块 二.创建测试类,初始化测试环境 三.定义登陆方法,以test_XXX开头 四.构建测试套件,运行测试用例 多啰嗦一句,笔者作为新手,在页面跳转时没有考虑句柄问题,运行一直报错,还误以为是跳转页面元素的xpath定位有误:这类页面跳转记得使用driver.switch_to.window(self.driver.window_handles[-1…
能解决登陆一次后,之后不需要二次登陆的动态加载数据,网页保存的cookie和标签,加入到selenium自动化测试浏览器中 1 from selenium import webdriver 2 import re 3 from time import sleep 4 5 def willbill(): 6 '''点击翻页,获取下一页数据,进行正则匹配''' 7 driver.find_element_by_xpath('//*[@id="upPage"]/li[5]/a').click…
首先判断元素是否存在,如果存在的时候使用location_once_scrolled_into_view就可以滚动到某个元素处,也就是滚动直到这个元素出现在屏幕里.…
在做登录脚本的时候,如果只是单纯从登录页面进行元素定位的话,并不存在这个问题 但实际情况是,从首页A进入到登录页面B(并非弹出框),这时候在页面B无法定位到该页面的元素 问题:从页面A进入页面B,无法定位B页面的元素 原因:当启动脚本后,从页面A打开页面B后,窗口句柄(焦点)依旧停留在主页面A,所以无法定位页面B的元素 解决方法:比较笨一点的方法,就是将窗口句柄(焦点)切换到当前页面 fc.switch_to_window(fc.window_handles[1]) 这种方法在页面相对比较少的情…
1. Python2安装 官方网站:https://www.python.org/downloads/ (python3或新版本已经默认集成了pip包和path,安装的时候打勾就行,可以直接跳过下面第2步的pip的安装过程,直接跳到第三步) 下载最新版本的 Python2,安装过程与其它 Windows 程序一样,安装完成在开始菜单中将看到安装好的 Python 目录: 打开 Python 自带的编辑器 IDLE 就可以编写 Python 程序了: 或者通过在 Windows 命令提示符下输入“…