css - 未能找到该字段的元素 selenium 识别
问题描述
我在FindElementByName
这里尝试过,它似乎应该识别这个名字,但我得到一个没有这样的元素错误......
我想念什么?这是在 Intacct.com 网站上。根据 ChroPath 的说法,这似乎不是我可以找到的唯一 CSS,并且不存在相对的 XPath。有没有其他方法可以让我输入这个 dang
<input id="filter" class="filter" type="text" name="F_RECORDID" value="" onkeypress="if (event.keyCode == 13) c('.rb','0');" ctype="text">
Sub newCSS()
Dim bot As New Selenium.WebDriver
bot.Start "Chrome", "https://www.intacct.com/ia/acct/login.phtml?_ga=2.13247287.1007588550.1536894830-1229002215.1536894830"
bot.get "/"
bot.FindElementByXPath("//span[@class='iamenutitle'][contains(text(),'Accounts Payable')]").Click
bot.FindElementByCss("[menuitemrefno='126']").Click
bot.SwitchToFrame .FindElementById("iamain")
解决方案
尝试以下切换到 iframe,然后获取元素。在所有浏览器中使用 id 会更快,理论上它是页面独有的。然后,我将向您展示一种使用 CSS 选择器的方法,该方法比在大多数浏览器和更高版本的 IE 中使用 FindElementByName 更快,因为它们针对 CSS 进行了优化。如果您想了解选择器速度,请在此处查看我的答案。您还可以通过索引切换到 iframe。
Option Explicit
Public Sub test()
Dim driver As New ChromeDriver, ele As Object
Const URL = "URL"
With d
.Start "Chrome"
.get URL
'Other steps
.SwitchToFrame "iamain"
Set ele = .FindElementById("filter").SendKeys "123" '.FindElementByCss("[name='F_RECORDID']").SendKeys "123"
'OTHER CODE
.Quit
End With
End Sub
推荐阅读
- r - 结合两个配对 id
- mysql - 部署后 MVC 应用程序无法连接到 MySQL
- php - PHP API Curl header 没有授权字段通过
- c# - 如何设计用asp.net mvc直接删除默认页面中某项的功能
- interrupt - (STM32L476RG)标志设置(osThreadFlagsSet)在中断(GPIO EXTI)中执行时使微控制器崩溃
- spring - Eclipse 'Project Explorer' 不显示项目中的所有文件
- c - 为什么堆栈看起来像这样?
- sql-server - 获取初始序列的“最后”行
- pandas - 重新采样并填充 df - pandas
- python - csv.writer.writerow 不正确地分离我的数据