Excel 在Selenium VBA中提取变化的XPath
我发现在最终结果页面中提取(更改)XPath文本很困难。 本网站: 很少有IEC示例代码是可用的Excel 在Selenium VBA中提取变化的XPath,excel,vba,selenium,selenium-webdriver,web-scraping,Excel,Vba,Selenium,Selenium Webdriver,Web Scraping,我发现在最终结果页面中提取(更改)XPath文本很困难。 本网站: 很少有IEC示例代码是可用的 05040507006--->这会产生诸如公司名称之类的结果 05040507007->这会产生无效的IEC代码消息 0504057006 0504057007 0504057006 Option Explicit Public Sub EntityList() Dim bot As WebDriver Dim count As Long Set bot = New WebDriver bot
Option Explicit
Public Sub EntityList()
Dim bot As WebDriver
Dim count As Long
Set bot = New WebDriver
bot.Start "Chrome"
count = 1
While (Len(Range("A" & count)) > 0)
bot.Get "http://dgftcom.nic.in/licasp/IecDenQuery.asp"
bot.FindElementByXPath("//input[@type='text'][@name='IEC']").SendKeys Range("A" & count)
bot.FindElementByXPath("//input[@type='submit'][@name='B1']").Click
Range("B" & count) = bot.FindElementByXPath("/html/body/table[2]/tbody/tr/td/font/strong").Text
'Range("B" & count) = bot.FindElementByXPath("//table/tbody/tr[1]/td[1]").Text
bot.Wait 1000
count = count + 1
Wend
bot.Quit
End Sub
这里的问题是,当输入下一个IEC代码时,XPath发生了变化,这就是整个代码突然结束的地方。尝试下面的XPath
//font[contains(.,'IEC :')]
代码:
Range("B" & count) = bot.FindElementByXPath("//font[contains(.,'IEC :')]").Text
根据结果表是否有结果,有两种组合之一。您可以使用css或语法。应该比xpath快
Range("B" & count) = bot.FindElementByCss("table td, table + font").Text
先生,真是天才!你能简单地给我解释一下吗?我正在考虑尝试“如果”和“或”技术。@AmitShah:检查字符串
IEC:
包含在font
标签中,该标签在网页上固定为有效或无效代码。非常感谢先生从一开始就对我的支持,我已经看到我的编码技能稳步增长,但每当我来到这里,我都会为问问题感到羞耻。正是像你们这样的人给予鼓励,鼓励这样的程序员去争取更多。我对CSS了解不多,在你回答之后,我从4-5个小时就开始了。如果你尝试研究并分享你的努力,就不必为问问题感到羞耻。您可以在此处了解有关css的更多信息: