VBA Selenium出现Type Mismatch类型不匹配错误求助
VBA Selenium 运行时错误13(类型不匹配)解决方法
错误原因:
你声明的H2Headers是**Selenium.WebElements(元素集合类型),但调用的FindElementByTag方法返回的是单个Selenium.WebElement对象**,两者类型不兼容,直接赋值触发了类型不匹配错误。解决方案分两种场景:
场景1:需要获取页面中所有<h2>元素(集合)
把FindElementByTag替换成复数形式的FindElementsByTag,这个方法会返回匹配的所有元素组成的WebElements集合,和变量类型匹配。修正后的代码:
Private ch As Selenium.ChromeDriver Sub TestSelenium() Set ch = New Selenium.ChromeDriver ch.Start ch.Get "https://en.wikipedia.org/wiki/Main_Page" Dim H2Headers As Selenium.WebElements Set H2Headers = ch.FindElementsByTag("h2") ' 改为复数方法 Debug.Print H2Headers.Count ' 可正常打印集合的元素数量 End Sub
场景2:只需要获取页面中第一个<h2>元素
把变量声明改成单个元素类型Selenium.WebElement,同时注意单个元素没有Count属性,需调整后续操作,比如打印元素文本:
Private ch As Selenium.ChromeDriver Sub TestSelenium() Set ch = New Selenium.ChromeDriver ch.Start ch.Get "https://en.wikipedia.org/wiki/Main_Page" Dim H2Header As Selenium.WebElement ' 改为单个元素类型 Set H2Header = ch.FindElementByTag("h2") Debug.Print H2Header.Text ' 打印第一个h2的文本内容 End Sub
内容的提问来源于stack exchange,提问作者SSG
相关产品推荐
相关产品推荐

