使用selenium在vba中编写脚本以便在运行iframe时切换iframe,我收到错误:object不支持此属性。如果我将以下示例作为考虑因素,我该怎么做呢。
Sub HCAD()
Dim driver As New ChromeDriver
driver.Get "http://hcad.org/quick-search/"
driver.Wait 500
driver.SwitchToFrame (driver.FindElementByTag("iframe"))
End Sub
这是我试图从目标页面获取地址名称的脚本。当我到达那里时我会面对另一个iframe,所以最后什么都没得到。我脚本中提到的地址只有一个名称。
Sub HCAD()
Dim driver As New ChromeDriver
Dim post As Object
driver.Get "https://public.hcad.org/records/quicksearch.asp"
driver.Wait 500
driver.FindElementById("s_addr").Click
driver.FindElementByName("stnum").SendKeys ("8227")
driver.FindElementByName("stname").SendKeys ("FINDLAY ST")
driver.FindElementByXPath("//input[@value='Search']").Click
driver.Wait 1000
Cells(1, 1) = driver.FindElementByXPath("/html/body/table/tbody/tr/td/table[5]/tbody/tr[2]/td[1]/table/tbody/tr/th").Text
End Sub
答案 0 :(得分:0)
为您的代码添加了一些额外的好功能
btw ..细胞(1,1)线失败
Sub HCAD()
' add ref: Selenium Type Library
Dim driver As New ChromeDriver ' PhantomJSDriver (this one is for "headless" browsing)
driver.Get "https://public.hcad.org/records/quicksearch.asp"
driver.Wait 500
driver.FindElementById("s_addr").Click
driver.FindElementByName("stnum").SendKeys ("8227")
driver.FindElementByName("stname").SendKeys ("FINDLAY ST")
driver.FindElementByXPath("//input[@value='Search']").Click
driver.Wait 1000
Dim bbb As Object
Set bbb = driver.TakeScreenshot
bbb.ToExcel Cells(5, 1)
Set bbb = Nothing
Cells(1, 1) = driver.FindElementByXPath("/html/body/table/tbody/tr/td/table[5]/tbody/tr[2]/td[1]/table/tbody/tr/th").Text
Set driver = Nothing
End Sub
答案 1 :(得分:0)
根据@Mathieu Guindon的建议,解决方案应该如下(工作一)。
Sub HandleIframe()
With New ChromeDriver
.get "http://hcad.org/quick-search/"
.SwitchToFrame .FindElementByTag("iframe", timeout:=10000)
.FindElementById("acct").SendKeys "8227"
.FindElementByCss("input[value='Search']").Click
End With
End Sub