C# 等待可点击元素变为可见——Chromedriver

C# 等待可点击元素变为可见——Chromedriver,c#,powershell,selenium-chromedriver,C#,Powershell,Selenium Chromedriver,下面是我代码的一部分:它被设计成在一个按钮可见后点击它。 这需要不同的时间,所以我只需要等待10秒 有没有一种方法可以使它更具动态性,以便在它可见后立即执行单击 提前谢谢 问候 #go to the uploadtab --------------------- $searchBtnIris = $driver.FindElementByXPath('//*[@id="menuFormHome:j_id44_body"]/ul[3]/li[4]/a') Write-Host "Den ID va

下面是我代码的一部分:它被设计成在一个按钮可见后点击它。 这需要不同的时间,所以我只需要等待10秒

有没有一种方法可以使它更具动态性,以便在它可见后立即执行单击

提前谢谢

问候

#go to the uploadtab
---------------------
$searchBtnIris = $driver.FindElementByXPath('//*[@id="menuFormHome:j_id44_body"]/ul[3]/li[4]/a')
Write-Host "Den ID van de zoekknop is $seachBtnIris"
$searchBtnIris.Click();

Start-Sleep -s 10

#click add button and select file to upload
-------------------------------------------
$searchBtnIris = $driver.FindElementByXPath('//*[@id="uploadFormPanel:upload:flashContainer"]')
Write-Host "Den ID van de zoekknop is $seachBtnIris"
$searchBtnIris.Click();
这里有一个猜测


Hi此返回:调用带有“0”参数的“Click”异常:“过时元素引用:元素未附加到页面文档能否将
Write Verbose
更改为
Write Host
并查看它经过多少执行周期,请?您的意思是?Den ID van het zoekveld is元素(ID=0.14751870639676423-1)Den ID van het zoekveld是元素(ID=0.14751870639676423-2)Den ID van de zoekknop是Den ID van de zoekknop是Den ID van de zoekknop是异常调用带有“0”参数的“Click”:“过时元素引用:元素未附加到页面文档(会话信息:chrome=57.0.2987.133)(驱动程序信息:chromedriver=2.29.461591(62ebf098771772160f391d75e589dc567915b233),平台=Windows NT 10.0.10586 x8664)"这表明while块中的测试是不正确的……我假设如果没有结果,
findelementbypath
将返回
$null
。文档似乎建议它将抛出一个异常;它似乎没有这样做。因此,多读一次,看起来需要使用等待方法。请参见此处:现在While部分不会生成错误,但不会执行单击。
while (-not ($searchBtnIris)) {
    try {
        $searchBtnIris = $driver.FindElementByXPath('//*[@id="uploadFormPanel:upload:flashContainer"]')
    }
    catch {
        Write-Verbose "Element not found"
        Start-Sleep -Milliseconds 100            
    }
}

Write-Host "Den ID van de zoekknop is $seachBtnIris"
$searchBtnIris.Click();