gpt4 book ai didi

excel - 如何使用 Selenium VBA 获取 innerHTML

转载 作者:行者123 更新时间:2023-12-04 20:51:33 24 4
gpt4 key购买 nike

如果在 chrome 中执行任务时出现弹出窗口,我正在尝试获取 innerHTML,然后基于 innerHTML 单击确定并保存或退出。我遇到的问题就在可能的弹出窗口之前,我在 iframe 中并且需要切换回主体。我正在使用 Selenium :

main body (possible pop_up *i think*)
iframe (I am here)

下面是我的一些代码,去掉了不必要的行:
Dim sel As Selenium.ChromeDriver
Dim pop as Object

Set sel = New Selenium.ChromeDriver

sel.Get URL
' Switch to iframe
Set iframe = sel.FindElementByTag("iframe", 10000)
sel.SwitchToFrame iframe, 5000

code...

' Where the popups sometimes show up
On Error Resume Next
sel.SwitchToDefaultContent
Set pop = sel.FindElementsByClass("popupText", 2000) *Error Could not locate class=popupText
On error goto 0

如果我接下来关闭错误恢复,即使有弹出窗口,我也会收到此错误。下面是 HTML:
<span class="popupText">
<br />
*Text*
<br />
<br />
*Text*
</span>

我尝试了其他一些事情:不使用 switchtodefaultcontent,使用 switchtoparenframe,但似乎没有任何效果。

selenium 中还有一个 .SwitchToAlert 功能也不起作用......
strAlert = sel.SwitchToAlert.Text 'Get nothing
sel.SwitchToAlert.Accept 'Does not do anything

最佳答案

找到了解决方法,似乎 selenium v​​ba 加载项存在问题。解决方法:

sel.SwitchToDefaultContent
inner_text = Right(sel.PageSource, 1000)

相反,我在切换到默认内容后捕获了 page_source(弹出文本恰好位于 html 的末尾),然后我继续检查弹出窗口(4 个不同的 pop_up 选项)是否在 inner_text 变量中。然后从那里继续。

我认为这是 VBA Selenium 加载项的问题的原因是我用 Python 复制了上面的代码并且效果很好......所以不确定那里发生了什么。 VBA Selenium 的使用时间约为 4 年。

关于excel - 如何使用 Selenium VBA 获取 innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58735778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com