首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

21.9 Python 使用Selenium库

Selenium是一个自动化测试框架,主要用于Web应用程序自动化测试。它可以模拟用户浏览器操作,如打开网页、点击链接、填写表单等,并且可以代码中实现条件判断、异常处理等功能。...该工具使用时需要安装两个模块,首先读者需要自行安装selenium包,并且需下载与对应浏览器匹配驱动程序。...,并通过get()函数让浏览器打开一个页面,最后通过xpath语法定位到//*[@id="s-top-left"]/a[4]标签(贴吧)上,并点击鼠标左键,打开页面并输出所有窗体,如下图所示;图片21.9.2...切换窗体句柄如上代码执行虽然打开了百度百科,但是窗体句柄其实还是停留在了百度首页上,定位元素还是百度上,此时我们就需要切换窗体句柄,也就是将当前句柄切换到百度贴吧页面上,此时才可读取该页面的完整源代码信息...driver.page_source) print(url_source) input("输入回车结束") driver.quit()运行后读者可自行查询当前句柄所在位置,如下图所示;图片21.9.3 前进后退刷新控制页面是我们可能需要使用页面前进后退刷新功能

22530

Django框架开发002期 Python编程利用PyCharm专业版和社区版开发网站

1.4.3使用pycharm专业版配置Django服务器 PyCharm开发环境中,点击界面右上角add configuration...,进入Django服务器配置界面。...弹出配置窗体中,选择django server。 修改配置名称跟项目相同名字。 最后,点击运行按钮。 运行,会在开发环境下面出现一些启动提示信息。...第三步:配置django server。 点击pycharm右上角配置按钮弹出窗口中,先点击“+”选择python。 开始配置django服务器运行文件。...配置好,先选择项目运行配置文件【本文是ljyweb】,再点击运行按钮,即可运行django server。 运行pycharm下方会有一个窗体显示运行日志。...点击蓝色http://127.0.0.1:8000/就可以浏览器中弹出网站首页。

77740
您找到你想要的搜索结果了吗?
是的
没有找到

JavaScript——location对象

window对象给我们提供了一个location属性用于获取或设置窗体URL,并且可以用于解析URL,因为这个属性返回是一个对象,所以我们将这个属性也称为location对象。...互联网上每个文件都有一个唯一URL,它包含信息指出文件位置以及浏览器应该怎么处理它。 URL一般语法格式为: protocol://host[:port]/path/[?...= 'http://www.yuezeyi.com'; } else { div.innerHTML = '您将在' + timer + '秒钟跳转到首页...location对象方法 返回值 location.assign() 跟href一样,可以跳转页面(也称为重定向页面) location.replace() 替换当前页面,因为不记录历史,所以不能后退页面...location.reload() 重新加载页面,相当于刷新按钮或者F5如果参数为true强制刷新(ctrl+F5) 点击 <script

46630

JSP 防止网页刷新重复提交数据

网页如何防止刷新重复提交与如何防止后退解决方法 提交禁用提交按钮(大部分人都是这样做) 如果客户提交,按F5刷新怎么办?...或者“怎样才能防止用户点击后退按钮返回以前浏览过页面?” 遗憾是,我们无法禁用浏览器后退按钮。...一、概述      曾经有许多人问起,“怎样才能‘禁用’浏览器后退按钮?”,或者“怎样才能防止用户点击后退按钮返回以前浏览过页面?”ASP论坛上,这个问题也是问得最多问题之一。...遗憾是,答案非常简单:我们无法禁用浏览器后退按钮。         起先我对于居然有人想要禁用浏览器后退按钮感到不可思议。...后来,看到竟然有那么多的人想要禁用这个后退按钮,我也就释然(想要禁用只有后退按钮,不包括浏览器前进按钮)。因为默认情况下,用户提交表单之后可以通过后退按钮返回表单页面(而不是使用“编辑”按钮!)

11.5K20

Ajax与jQuery异步加载数据

将展示Ajax数据 (document).ready(function(){})指页面其他元素加载完成开始加载Ajax数据,此时,浏览器不会有加载条和转圈情况出现。...,它可能破坏浏览器后退与加入收藏书签功能。...动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中静态页面。...一个被完整读入页面与一个已经被动态修改过页面之间可能差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们前一次操作,但是Ajax应用程序中,却无法这样做。...不过开发者已想出了种种办法来解决这个问题,HTML5之前方法大多是在用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏IFRAME来重现页面上变更。

10.8K20

JavaScript BOM学习

(HTML DOM也会随后整理发表) 笔者接触Js之前就听闻Js“牛逼”,接触发现只要想法够贼,Js就能给你贼想法复现 ~ 作者主页:https://www.cnblogs.com/wangyuyang1016...window对象是BOM顶层,所有其他对象都是通过window对象衍生;但是调用子对象时候并不强制要求声明 ?...URL中表示变量字符子串 location.reload(true/false) 刷新页面(true/false选择是否从服务器刷新) location.replace(url) 通过url网址刷新当前网页...历史对象:history 历史对象保存着用户上网历史记录 属性方法 特性 history.back() 显示浏览器历史列表中后退一个网址网页 history.forward() 显示浏览器历史列表中前进一个网址网页...history.go(n)/go(url) 显示浏览器历史列表中第n个网址网页,大于0表示前进,小于0表示后退,等于0表示刷新当前页

88020

实现一个前端路由,如何实现浏览器前进与后退

需求 如果要你实现一个前端路由,应该如何实现浏览器前进与后退 ? 2. 问题 首先浏览器中主要有这几个限制,让前端不能随意操作浏览器浏览纪录: •没有提供监听前进后退事件。...•用户可以手动输入地址,或使用浏览器提供前进后退来改变 url。 所以要实现一个自定义路由,解决方案是自己维护一份路由历史记录,从而区分 前进、刷新、回退。 下面介绍具体方法。 3....•url 不存在于浏览记录中即为前进,前进时,往数组里面 push 当前路由。•url 浏览记录末端即为刷新刷新时,不对路由数组做任何操作。...注意:这个浏览记录需要存储 sessionStorage 中,这样用户刷新浏览记录也可以恢复。...当你通过浏览器后退按钮,从页面 c 后退到页面 a 之后,我们就依次把 c 和 b 从栈 X 中弹出,并且依次放入到栈 Y。这个时候,两个栈数据就是这个样子: ?

1.5K30

Selenium3 + Python3自

控制浏览器操作 控制浏览器窗口大小 测试过程中,我们在打开浏览器,根据需求可自定义调整浏览器尺寸大小。WebDriver提供了set_window_size()方法来设置浏览器大小。...如果页面没有最大化,可以调用driver.maximize_window()将浏览器最大化,相当于点击了页面右上角最大化按钮,maximize_window()方法不需要参数。...值得注意是,定位元素时候,有些网页如果不是全屏展示时,将有可能定位不准!!!...、后退 在当前页面打开一个新链接,如果想回退到前一个页面,使用如下driver.back(),相当于点击了浏览器后退按钮 和back操作对应浏览器前进操作driver.forward(),相当于点击了浏览器前进按钮...网页上显示信息可能不是最新,需要对页面进行刷新,使用refresh()方法刷新页面,相当于点击浏览器刷新按钮

50710

Excel实战技巧66:创建向导样式数据输入窗体5

初始化应用程序 HRWizard用户窗体Initialize事件中,将初始化自定义对象并添加代码来设置向导、列表和显示用户窗体。...初始化用户窗体 设置应用程序中最后一步是初始化用户窗体自身。...此时,可以运行该用户窗体。 1.VBE中,双击工程资源管理器窗口用户窗体。 2.单击标准工具栏中“运行子过程/用户窗体按钮或者按F5键,如下图24所示。 ?...给用户窗体添加导航 导航按钮要在向导应用程序中完成移动步骤任务,但它们也需要具备放置每个界面中数据到其在用户窗体cPerson对象里位置能力。...1.设计视图下打开用户窗体,单击标准工具栏中“运行子程序/用户窗体按钮或按F5键。 2.启动用户窗体,单击下一步按钮移动到向导第二步(已在配置工作表中定义),应该是Address界面。

1.6K20

window.location对象实现页面刷新

用户点击浏览器后退按钮页面ajax没有更新,通过使用windowlocation对象方法属性实现页面刷新刷新数据 window.location.reload() 该方法使浏览器刷新当前页面。...true, 则以GET 方式,从服务端取最新页面, 相当于客户端点击 Shift + F5(“刷新”)。...该方法刷新时会 事件: 如果有数据提交的话,会弹窗提示是否提交 bug: 安卓微信浏览器中location.reload方法失效无法跳转?...URL替换当前缓存在历史里(客户端)项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换URL。...使用location.href属性跳转会被加入到浏览器历史栈中,这意味着可以通过后退键来撤退。

2.3K40

Excel实战技巧66:创建向导样式数据输入窗体2

学习Excel技术,关注微信公众号: excelperfect 开始阅读本文前,请先学习下列内容: Excel实战技巧66:创建向导样式数据输入窗体1 下面的内容详细讲解这个引导用户为新员工输入信息向导样式用户窗体是如何实现...向导窗体设计 1.打开VBE,添加新用户窗体。 2.将该用户窗体高度设置为320,宽度为332。 3.将用户窗体重命名为HRWizard。...1.多页控件顶部选项卡中单击右键。 2.快捷菜单中选择“新建页”,如下图8所示。 ? 图8 3、重复上面添加页步骤。 此时用户窗体如下图9所示。 ?...图9 在用户窗体中添加控件 “Page1”中添加控件如下表所示,与EmpData工作表中个人信息列标题一致。 表:HRWizard用户窗体控件 ? 图10 多页控件下方添加4个命令按钮。...表:命令按钮设置 ? 图11 现在用户窗体如下图12所示。 ? 图12 “Page2”中添加控件如下表所示,与EmpData工作表中地址信息列标题一致。

95340

机房收费系统(VB.NET)——超详细报表制作过程

如图片左上角所示,系统默认新建这个数据集名称为“DataSet1”,为了命名规范,我们先取消“数据源配置向导”这个窗体,重新命名数据集名称,我命名为DataSetCheckoutReport: ?...命名之后,点击“新建”进入“数据源配置向导”窗口: ?         “ 应用程序将从哪里获取数据?”问题下,选择“数据库”,下一步: ?         “ 要使用哪种类型数据库模型?”...选择需要用到数据库中对象,设置DataSet名称,完成,自动返回“ 报表向导窗体,下一步: ?        ...下面就到了最后阶段,加上代码,核心代码为(限于篇幅,在这只贴上刷新按钮事件代码): '本代码层首先要添加以下引用 Imports System Imports Microsoft.Reporting.WinForms...最后,重新单击第一步添加ReportViewer空间,点击右上角小三角,“选择报表”选择您刚制作报表就大功告成了。

1.8K30

Django 实现网站注册用户邮箱验证功能

也就是说,用户注册填写正确电子邮件地址,接着网站会发送一封启用电子邮件到用户设置电子邮件邮箱中,并在邮件中提供一个激活或启用链接,在用户单击此链接,账号正式激活或启用。   ...2.建立 django-registration 所需模板   当用户单击“注册”按钮django-registration 就会开始调用一连串模板以及相关文本文件,这些是我们需要自己写。...registration_form.html : 显示注册窗体网页,默认使用 form 变量作为窗体各字段内容 registration_complete.html : 填写完注册窗体,单击“提交”...按钮显示信息页面 activation_complete.html : 当账号顺利完成启用时会显示页面 activate.html : 当账号启用失败时会显示页面 activation_email.txt...: 发送启用邮件时使用邮件内容 activation_email_subject.txt : 发送启用邮件时使用邮件主题 注意:由于 django-registration 会使用到 电子邮件发送功能

2.9K20

Django—视图

一、URLconf 用户通过浏览器地址栏中输入网址请求网站,对于Django开发网站,由哪一个视图进行处理请求,是由url匹配找到。...浏览器中给出地址发出请求采用get方式,如超链接。 浏览器中点击表单提交按钮发起请求,如果表单method设置为post则为post请求。...9)回到浏览器刷新,浏览效果如下图,点击“继续”按钮,最终浏览效果如下图: ?...上去 四、HttpResponse对象 视图接收请求并处理,必须返回HttpResponse对象或子对象。django.http模块中定义了HttpResponse对象API。...答:使用Session,会在Cookie中存储一个sessionid数据,每次请求时浏览器都会将这个数据发给服务器,服务器接收到sessionid,会根据这个值找出这个请求者Session。

4.4K20

JavaScript 高级程序设计(第 4 版)- BOM

window 对象浏览器中有两重身份,一个是 ECMAScript 中 Global 对象,另一个就是浏览器窗口 JavaScript 接口。...history 对象还有一个 length 属性,表示历史记录中有多个条目 # 导航 go() 可以在用户历史记录中沿任何方向导航,接收一个整数参数,正值表示前进负值表示后退 go()有两个简写方法:...为防止滥用,这个状态对象大小是有限制,通常在 500KB~ 1MB 以内 pushState()会创建新历史记录,所以也会相应地启用“后退按钮。...此时单击“后退按钮,就会触发 window 对象上 popstate 事件 popstate 事件事件对象有一个 state 属性,其中包含通过 pushState()第一个参数传入 state...否则,单击“刷新按钮会导致 404 错误。所有单页应用程序( SPA, Single Page Application)框架都必须通过服务器或客户端某些配置解决这个问题。

1.2K10

url操作之pushState、replaceState和popstate

上一节我们说地址栏跳转时候,谈到了浏览器会缓存用户访问url序列,我们可以通过浏览器前进后退按钮或者通过js提供方法,访问这个序列里url,不过关于这一点上一节我们只说了window.history.go...window.history.back() 这个方法作用为返回上一页,相当于浏览器后退按钮,和window.history.go(-1)达成效果是一样。...,它只会将目标url添加到序列中,并且出现在地址栏中,但并不会立即加载并跳转到这个页面,但如果你访问了新页面,点击返回按钮时候,或者在当前页面刷新时,浏览器就会加载并跳转到你新添加这个url。...利用此特性,我们可以动态修改地址栏参数,以便在用户下次刷新时候发生不一样效果,比如我们从其他页面跳转到此页面时会携带一个标识性参数,我们用完这个参数可以删除这个参数,以便显示此页面的默认显示内容...popstate popstate类似于一个事件函数,当用户浏览器点击后退、前进,或者js中调用histroy.back(),history.go(),history.forward()等,会触发popstate

2.6K20

Flutter Web:刷新后退问题

所以说存储在内存中都不安全,很明显浏览器刷新动作会清空所有内存数据,所以如果部分信息希望刷新依然留存,则需要通过一些方法将其持久化。...cookies中UCENTER_IUCTOKEN对应后退 浏览器后退操作和刷新一样是常用操作,但是有时候我们并不想回退到上一页,比如在当前页面弹窗提示用户是否返回。...但是这里有一个问题,点击返回按钮,虽然拦截了不会回退到上一页面,但是地址栏中url变成了首页url,但是页面还是当前页面,而且点击三次确实返回了上一页,但是刷新就出问题了。...刷新后退 在上步中其实没有完全解决问题,问题在刷新后退,这不仅仅是拦截后退操作时存在问题。...这样确实解决了刷新回退问题,因为刷新浏览器history并未丢失,但是也导致了文章中我们提到flutter中页面栈混乱问题。

2.3K30

JavaWeb防止表单重复提交几种方式

一、表单重复提交常见应用场景 网络延迟情况下用户多次点击submit按钮导致表单重复提交 用户提交表单,点击【刷新按钮导致表单重复提交(点击浏览器刷新按钮,就是把浏览器上次做事情再做一次,因为这样也会导致表单重复提交...) 用户提交表单,点击浏览器后退按钮回退到表单页面后进行再次提交 二、防止防止表单重复提交方式 1、利用JavaScript防止表单重复提交 (1)、用JavaScript控制Form表单只能提交一次...,不管验证输入正确与否,提交刷新验证码。...(5)、提交重定向到一个提交成功页面 表单提交跳转到另外一个成功页面。这样可以避免用户按F5导致重复提交,浏览器也不会出现表单重复提交警告,以及消除按浏览器前进和后退按导致同样问题。...与此同时将token放到页面的隐藏input中,发给浏览器。用户页面上提交时带着这个token一块提交到服务端,服务端通过比对token值。

2K20
领券