在selenium excel vba中,我试图了解有关如何处理CSS选择器的更多信息 我想知道,因为在检查具有ID的元素并运行代码时,我收到一条消息,提示找不到该元素 这是到目前为止的代码
Private bot As New selenium.ChromeDriver
Sub Test()
Dim win, mainWin As selenium.Window, sCode As String, i As Long
Dim urlImage As String, urlPost As String
Dim sCase As String
sCase = "192160470"
Set bot = New ChromeDriver
With bot
.Start "Chrome"
'First Window (Main Window)
.Get "https://www.kuwaitcourts.gov.kw/searchPages/searchCases.jsp"
'.FindElementById("txtCaseNo").SendKeys sCase
.FindElementByCss("input[type=text][name='txtCaseNo']").SendKeys sCase
'MsgBox "Click OK After Entering Captcha", 64
Stop
.Quit
End With
End Sub
这是该元素的HTML部分
<td><input type="text" name="txtCaseNo" id="txtCaseNo" maxlength="9" class="inputTextBox" onkeypress="return onlyNumbers(event);"></td>
我被困在这一行
.FindElementByCss("input[type=text][name='txtCaseNo']").SendKeys sCase
感谢进阶的帮助或想法
答案 0 :(得分:1)
该元素位于ID为 searchCaseDiv 的iframe
内部。您必须切换到该iframe才能访问该元素。
使用.SwitchToFrame
切换帧。
对于Java,就像这样
driver.switchTo().frame("searchCaseDiv");
答案 1 :(得分:1)
要将字符序列发送到用户名字段,因为所需元素位于<iframe>
中,因此您必须:
您可以使用以下解决方案:
With bot
.Start "Chrome"
.Get "https://www.kuwaitcourts.gov.kw/searchPages/searchCases.jsp"
.SwitchToFrame "searchCaseDiv"
.FindElementByCss("input[type=text][name='txtCaseNo']").SendKeys sCase
在这里您可以找到有关Ways to deal with #document under iframe的相关讨论