本帖最后由 源理 于 2018-12-19 12:39 编辑
五、填写表单 表单填写个经常做的网络操作,这里写几个例子进行演示说明,有input标签的输入有select标签 的选择、键盘功能键的介绍。
示例5 这里进行注册登录表单的填写 这里仅是做一个表单填写的演示。
效果
2-01
代码 'excel论坛注册页面表单填写 Sub示例4() Dim cd As New ChromeDriver cd.Start cd.Get "http://club.excelhome.net/member.php?mod=join" cd.FindElementById("ehusername").SendKeys "源理" cd.FindElementById("ehpassword").SendKeys"12345678QWERTY" cd.FindElementById("ehpassword2").SendKeys"12345678QWERTY" cd.FindElementById("ehemail").SendKeys "304013782@QQ.com" cd.FindElementById("invitecode").SendKeys "SendKeys" cd.FindElementById("realname").SendKeys "江志" cd.FindElementById("mobile").SendKeys "15166668888" Stop '看看网页上是不是填好了数据, '当然现在所有注册页都有防我们这种恶意注册的机制,行为验证是我这种技术破不了的 cd.Quit EndSub 代码解释 第一、二、三句就不解释了。 第四句:驱动通过ID查到WebElement,当获得到元素后向元素Sendkey(即键入)字符。 后面代码与第四句一样。 这里重点说明一下Sendkey方法。 WebElement.Sendkey( keysOrModifier, keys,) keysOrModifier:字符串或是功能键。功能键是指ctrl、shift、小键盘+-*数字等等功能键。调用Keys. Fields使用。 Keys:字符串。 示例:sendKeys Keys.Control, "s" ‘即模拟键盘输入ctrl+s。 Keys. Fields
示例5
效果
2-02
代码 Sub 示例5() Dim cd As New ChromeDriver cd.Start cd.Get "http://club.excelhome.net/forum.php" Dim keys As New keys cd.FindElementById("bdcs-search-form-input").SendKeys("Selenium").SendKeys keys.Enter Stop cd.Quit End Sub
代码解释 最重要的是第四句:通过id查找到搜索输入框元素,调用SendKeys方法向其输入“Selenium”,并在返回的输入框元素中发一个回车键
示例6
效果
2-03
代码: Sub 示例6() Dim cd As New ChromeDriver cd.Start cd.Get "http://kaijiang.500.com/?0_ala_baidu" cd.FindElementById("lotTypeSelect").AsSelect.SelectByText "双色球" cd.Wait 1000 cd.FindElementById("selectLotQuery").AsSelect.SelectByText "18001" Stop cd.Quit End Sub
关键代码解释 第四句:通过ID获得彩票类型的select选择框,调用ASSelect方法转换成SelectEelemet类,之后调用SelectEelemet类的SelectByText方法选中双色球选项。 第五句:由于后面的期数框的数据是异步请求,所以需要等一定时间。当然这不是最优的代码,wait方法可以改进。 第六句和第四句意思一样。
小结:感觉填报表还是有很多想整理的如wait方法,元素定位,又感觉不应该放在这里。元素定位在这些例子中都有应用,很重要后面一 一整理出来。 |