在Powershell中使用Selenium单击Duo按钮

在Powershell中使用Selenium单击Duo按钮,powershell,selenium,selenium-chromedriver,multi-factor-authentication,Powershell,Selenium,Selenium Chromedriver,Multi Factor Authentication,我正在尝试使用Powershell和Selenium登录受Duo双因素身份验证保护的网页。我需要单击该按钮,以便Duo将在网站登录完成之前向手机发送推送请求 查看登录页面,我看到如下HTML(按钮位于iframe中,我可以通过id选择): 他们都给我“元素未找到”错误,除了最后一个错误,它说,“不允许复合类名。类名中不能有空格。请改用CSS选择器。” 关于如何完成此登录,您有什么想法吗?您需要切换到iframe才能找到其中的元素。我不知道powershell,所以我不确定如何使用语法,但我很确定

我正在尝试使用Powershell和Selenium登录受Duo双因素身份验证保护的网页。我需要单击该按钮,以便Duo将在网站登录完成之前向手机发送推送请求

查看登录页面,我看到如下HTML(按钮位于iframe中,我可以通过id选择):

他们都给我“元素未找到”错误,除了最后一个错误,它说,“不允许复合类名。类名中不能有空格。请改用CSS选择器。”


关于如何完成此登录,您有什么想法吗?

您需要切换到iframe才能找到其中的元素。我不知道powershell,所以我不确定如何使用语法,但我很确定这就是您所缺少的。我想这就是我在前两个示例中所做的。我需要在iframe上单击吗?不,您需要使用该功能切换帧。在C#中,它类似于
driver.SwitchTo().Frame(driver.FindElement(By.Id(“duo_-iframe”));我查找了与powershell相关的文档,但没有找到任何东西,就是这样
$chromedriver.SwitchTo().Frame($chromedriver.FindElementById(“duo_iframe”))
$chromedriver.findelementbypath(//按钮[@type='submit'])。单击()
可让我进入下一步。谢谢
<button tabindex="2" type="submit" class="auth-button positive"><!-- -->Send Me a Push </button>
$chromedriver.FindElementById("duo_iframe").FindElementByXPath("//button[@type='submit']")
$chromedriver.FindElementById("duo_iframe").FindElementByClassName('auth-button')
$chromedriver.FindElementByXPath("//button[@type='submit']")
$chromedriver.FindElementByXPath("//*[@type='submit']")
$chromedriver.FindElementByCssSelector('.auth-button positive')
$chromedriver.FindElementByCssSelector('auth-button positive')
$chromedriver.FindElementByClassName('auth-button positive')