Excel 在Selenium VBA中提取变化的XPath

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

我发现在最终结果页面中提取(更改)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.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的更多信息: