excel - 输入 excel 数据重叠的 Web 占位符问题
问题描述
在查找电子邮件地址是否有效时,我遇到了这个问题,其中网站的占位符总是隐藏我的 excel 输入,并且不会转到下一个命令。还需要在电子邮件地址旁边的 excel 中从网页的内部文本中捕获消息。
使用 VBA web 将在 web 的登录页面中从 excel 的单元格 A2 输入电子邮件,然后单击下一步。
Sub Test()
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1549662555&rver=6.7.6631.0&wp=MBI_SSL&wreply=https%3a%2f%2fwww.bing.com%2fsecure%2fPassport.aspx%3frequrl%3dhttps%253a%252f%252fwww.bing.com%252fsearch%253fq%253dmsn%2526form%253dEDGEAR%2526qs%253dPF%2526cvid%253d904d7a00fd1b4125ab81e0f3bb83208e%2526cc%253dUS%2526setlang%253den-US%2526wlsso%253d1%2526wlexpsignin%253d1%26sig%3d22F3BD543C546368216CB1A93D3562E7&lc=1033&id=264960&CSRFToken=f4af0dd6-d72f-4001-9430-e76c6c91253b&aadredir=1"
Do While IE.readyState <> 4: DoEvents: Loop
IE.document.getElementById("i0116").Value = "absdrs@outlook.com"
End Sub
如果出现“帐户不存在。输入其他帐户”之类的错误,请在 Excel 中的单元格 A2 前面提及“错误”,否则为“有效”。它将继续进入单元格 A2 中的下一个值,直到最后。(用于网络循环的 VBA)
解决方案
该网站期待击键。要么在 IE 中找到一种方法来触发它,也许是使用 FireEvent,或者切换到使用 selenium basic。安装selenium basic后,转到 VBE > Tools > References 并添加对 Selenium 类型库的引用。
Option Explicit
Public Sub test()
Dim d As ChromeDriver, loginDetails(), ws As Worksheet, i As Long
Set ws = ThisWorkbook.Worksheets("Sheet2")
loginDetails = ws.Range("A1:B2").Value ' Column A has email, col B has password
Set d = New ChromeDriver
With d
.get "https://login.live.com/"
For i = LBound(loginDetails, 1) To UBound(loginDetails, 1)
.FindElementById("i0116").SendKeys loginDetails(i, 1)
.FindElementById("idSIButton9").Click
'Other code ....
Next
.Quit
End With
End Sub
推荐阅读
- python - re.sub 用于以特殊字符开头的字符串
- r - Google Analytics R - 可以在同一次通话中提取年初至今的数据和去年年初至今的数据吗?
- php - Wordpress 有时不保存更改
- java - 如何使用 org.objectweb.asm.MethodVisitor 获取方法参数的数量和类型?
- ruby-on-rails - 实现 Rails Helpers 有效地获取多个块
- c++ - 通过用户定义的类元素向量就地修改向量成员变量
- python - 无法关闭正在运行的事件循环
- amazon-dynamodb - 如何从 dynamoDB 中仅获取部分文档?
- mysql - SQL 跨项目的不同工作日期,不包括休息日期
- javascript - 如何在 JavaScript 中使用 onclick 方法操作两个表