Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html VBA can';运行时找不到ElementById。元素在检查时存在,但在VBA引用时不存在_Html_Vba_Web Scraping - Fatal编程技术网

Html VBA can';运行时找不到ElementById。元素在检查时存在,但在VBA引用时不存在

Html VBA can';运行时找不到ElementById。元素在检查时存在,但在VBA引用时不存在,html,vba,web-scraping,Html,Vba,Web Scraping,我正在尝试让VBA打开网页,输入密码,然后单击提交。过去对我有效的技术似乎不起作用 我已经尝试使用.FindElementById使用新的InternetExplorerMedium和Selenium,同时也尝试了使用Selenium的Xpath。他们都无法在页面上找到元素。在进行故障排除时,我注意到,如果我尝试在标记为“input”的元素集合中旋转,则在使用.FindElementsByTag(“input”)时,该集合将保持为空。这让我非常困惑,于是我让VBA打开网页并打印outerHTML

我正在尝试让VBA打开网页,输入密码,然后单击提交。过去对我有效的技术似乎不起作用

我已经尝试使用
.FindElementById
使用新的InternetExplorerMedium和Selenium,同时也尝试了使用Selenium的Xpath。他们都无法在页面上找到元素。在进行故障排除时,我注意到,如果我尝试在标记为“input”的元素集合中旋转,则在使用
.FindElementsByTag(“input”)
时,该集合将保持为空。这让我非常困惑,于是我让VBA打开网页并打印
outerHTML
。这本书是:

HTML:


这与我手动检查试图填充的密码框时看到的完全不同;我明白了:



但加载页面时VBA看不到这一点。我错过了什么?这是我在StackOverflow上提出的第一个问题,因此如果我的格式不正确,我深表歉意。

您需要先切换到帧,然后像以前一样继续

.SwitchToFrame .FindElementById("Login") 

您需要先切换到帧,然后像以前一样继续

.SwitchToFrame .FindElementById("Login") 

请注意,
元素已经过时很多年了。使用selenium,您是否尝试切换到.FindElementById(“登录”)以进入登录框架?@QHarr,成功了!我使用switchTo.FindElementById(“登录”),一旦我切换到框架中,FindElementById(“密码”)就工作了。我是否将帖子标记为已解决?我将发布一个你可以接受的答案。有些人,我也尝试将你的答案标记为有用,但我显然是新手。请注意,
元素已过时多年。使用selenium,你是否尝试切换到.FindElementById(“登录”)以进入登录框架?@QHarr,成功了!我使用switchTo.FindElementById(“登录”),一旦我切换到框架中,FindElementById(“密码”)就工作了。我会发布一个你可以接受的答案,我也试图将你的答案标记为有用,但我显然是新的。