2017-08-08 54 views
0

実行時にiframeを切り替える目的で、セレナを使ってvbaにスクリプトを書き込むと、オブジェクトがこのプロパティをサポートしていないというエラーが表示されます。以下の例を考慮に入れるとどうすればいいですか?セレンvbaを使用してiframeを切り替えるにはどうすればよいですか?

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に直面するので、何も得られなくなります。私のスクリプトで言及したアドレスに対して1つの名前しかありません。あなたのコードに追加

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

を失敗したなぜあなたはちょうどここに行きませんか? https://public.hcad.org/records/quicksearch.asp – jsotola

+0

方法はありません。私は最初のiframeを無視する場合。ターゲットページには他のものがあります。私は、iframeを切り替えるためにvbaにオプションがあるかどうか知りたいです。 – SIM

+1

'FindElementByTag'の戻り値のまわりにこれらの無関係な括弧を取り除くことから始めます。これはオブジェクト参照を返すように非常によく似ています。これらのカッコでやっているように、ByValを渡すことは非常に悪い考えです。 –

答えて

0

少し余分な良い機能が

ところで..細胞(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 
関連する問題