我希望使用Selenium从Excel中自动执行一个非常基本的xpath检查,并遇到运行时错误'7':内存不足。
我已经成功地使用AHK进行了相当多的自动化,但是VBA还是新手,所以我很好奇可能是什么引起了问题。当前页面正在加载,但是一旦检查XPath,它几乎立即弹出并显示内存不足的运行时错误。
我已经仔细检查了是否有额外的进程正在运行,或者我的内存不足,而且似乎都不是问题。我有足够的可用内存并已关闭所有进程,因此我认为我的代码有错误或某些我不知道的问题。我已经更新到ChromeDriver for Selenium的最新版本,并且可以肯定Xpath是正确的。
Public Sub DupeCheck()
Dim CID As String
Dim HireURL As String
Dim SearchResult As String
CID = 14962738
HireURL = "https://hire.amazon.com/search?q=" & CID & "&sort=relevance_desc&type=candidate"
Dim bot As New WebDriver
bot.Start "chrome", HireURL
bot.Get "/"
SearchResult = bot.FindElementByXPath(".//*[@id='search-page-root']/div[1]/div[2]/div/div[2]/div/div/div[2]/div/div/ul/li[1]/div/div[1]/div[1]/div[2]").Attribute("innerText")
MsgBox (SearchResult)
bot.Quit
End Sub
有人知道导致问题的原因吗?我真的很感谢任何帮助或想法!谢谢!
答案 0 :(得分:1)
对于显示的html,并在我们的讨论之后,使用css attribute = value selector以($)结尾的运算符指定类属性值以指定的子字符串结尾
FindElementByCss("[class$='e15zxa0z0']")
如果您需要属性值,则可以使用.Attribute方法,例如
FindElementByCss("[class$='e15zxa0z0']").Attribute("attributename")
XPath可能特别脆弱,而CSS选择器通常是更快的选择方法,因为现代浏览器已针对CSS进行了优化。它们还应该减少内存消耗。
这是您在代码中使用的XPath的唯一实例吗?参见memory exhaustion