none
powershell selenium WaitForPageToLoad RRS feed

  • Вопрос

  • Подскажите как в powershell selenium webdriver сделать чтобы подождало пока страница загрузится полностью.
    Пытаюсь использовать команды
    WaitForPageToLoad("30000")
    WaitForComplete("30000")
    Но мне отвечает что нету таких команд.
    lnk
    Подскажите может я их неправильно использую.
    Или какие другие команды для этих целей надо использовать?

    $WebDriver             = [Reflection.Assembly]::LoadFrom( $WebDriverPath )
    $WebDriverSupport    = [Reflection.Assembly]::LoadFrom( $WebDriverSupportPath )
    $ch = New-Object OpenQA.Selenium.Chrome.ChromeDriver
    $ch.Navigate().GoToUrl("http://tut.by")
    $ie.WaitForPageToLoad("30000")
    $ie.WaitForComplete()
    31 декабря 2017 г. 3:51

Все ответы

  • http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits
    $wait = New-Object OpenQA.Selenium.Support.UI.WebDriverWait($ch, [TimeSpan]::FromSeconds(30.00))
    $wait.Until([Func[OpenQA.Selenium.IWebDriver,bool]]{$ch.ExecuteScript("return document.readyState").Equals("complete")})

    31 декабря 2017 г. 10:16
    Отвечающий
  • param(
    		[Object]$ie				= $null,						# сылка на браузер в котором мы должны залогиниться
    		[string]$username		= "<No Username>",				# Имя пользователя онлайнера
    		[string]$password		= "<No pass>"					# Пароль пользователя онлайнера
    )
    
    do {
    
    	$url = "https://profile.onliner.by/login"
    	$ie.Navigate().GoToUrl($url)
    	Start-Sleep -Milliseconds 200
    	$html =  $ie.PageSource
    	if ( $html.Contains("korggrodno") -eq $false ) {
    		$ie.FindElementsByClassName("auth-box__input")[0].SendKeys($username)
    		Start-Sleep -Milliseconds 100
    		$ie.FindElementsByClassName("auth-box__input")[1].SendKeys($password)
    		Start-Sleep -Milliseconds 100
    		$ie.FindElementByClassName("auth-box__auth-submit").Submit()
    		Start-Sleep -Milliseconds 100
    	}
    	$wait = New-Object OpenQA.Selenium.Support.UI.WebDriverWait($ie, [TimeSpan]::FromSeconds(30.00))
    	$wait.Until([Func[OpenQA.Selenium.IWebDriver,bool]]{$ie.ExecuteScript("return document.readyState").Equals("complete")})
    	#$ie.WaitForPageToLoad("30000")
    	#$ie.WaitForComplete()
    	$html =  $ie.PageSource
    } while ( $html.Contains("korggrodno") -eq $false )

    Пытаюсь использовать приведенный вами код следующим образом.

    Но он как то не работает.

    Не происходит ожидание момента когда страница загрузится.

    31 декабря 2017 г. 13:21