>

Powershell ISE를 사용하고 있습니다. 가져올 셀레늄 수업이 있습니다. 이 스크립트를 제대로 실행하려면 유형 가속기를 배치해야합니까? 이 프로그램을 작성하는 올바른 방법은 무엇입니까? Powershell을 처음 사용합니다. 도와주세요. TestByClassKeyWord.ps1파일에 유형 가속기를 배치하려고 시도했지만 작동하지 않았습니다.

메인 파일

PoC.Test.ps1

<시간>

try
{
    Add-Type -Path (Join-Path C:\WORK\PoC 'WebDriver.dll')
    Add-Type -Path (Join-Path C:\WORK\PoC 'WebDriver.Support.dll')
    C:\WORK\PoC\TestByClassKeyWord.ps1
}
catch [System.Exception]
{
    Write-Output "exception is: $($PSItem.Exception.Message)"
}
finally
{
}

아래는 내가 부르는 스크립트입니다

TestByClassKeyWord.ps1

<시간>

using module 'C:\WORK\PoC\PgUserLogin.psm1'
using module 'C:\WORK\PoC\PgMain.psm1'
#Selenium trigger from Powershell
$driver = [ChrmDriver]::new()
try
{
    $pgUserLogin = [PgUserLogin]::new($driver)
    $pgUserLogin.SignIn('admin', 'admin')
}
catch [System.Exception]
{
    throw [System.Exception] "$PSItem.Exception.Message."
}
finally
{
    $driver.Quit()
}

모듈 파일

PgUserLogin.psm1

<시간>

# type accelerators
$accelerators = [PowerShell].Assembly.GetType('System.Management.Automation.TypeAccelerators')
$accelerators::Add('SelWait','OpenQA.Selenium.Support.UI.ExpectedConditions')
$accelerators::Add('SelBy','OpenQA.Selenium.By')
$accelerators::Add('SelKeys','OpenQA.Selenium.Keys')
$accelerators::Add('WbDrvWait','OpenQA.Selenium.Support.UI.WebDriverWait')
$accelerators::Add('RmtWbElement','OpenQA.Selenium.Remote.RemoteWebElement')
$accelerators::Add('ChrmDriver','OpenQA.Selenium.Chrome.ChromeDriver')
class PgUserLogin
{
    #region Fields

    [ChrmDriver] $driver
    [WbDrvWait] $wait
    #endregion
    #region Constructors
    PgUserLogin($driver)
    {
        $this.driver = $driver
        # Chrome driver
        $this.driver.Navigate().GoToUrl('https://10.88.12.77/userlogin.html')
        $this.driver.Manage().Window.Maximize()
        $this.wait = [WbDrvWait]::new($this.driver, 5000)
    }
    #endregion
    #region UIElements
    [RmtWbElement] tbUserName()
    {
        $this.wait.Until([SelWait]::ElementIsVisible([SelBy]::Id('cred_userid_inputtext')))
        return $this.driver.FindElementById('cred_userid_inputtext')
    }
    [RmtWbElement] tbPassword()
    {
        $this.wait.Until([SelWait]::ElementIsVisible([SelBy]::Id('cred_password_inputtext')))
        return $this.driver.FindElementById('cred_password_inputtext')
    }
    [RmtWbElement] btnSignIn()
    {
        $this.wait.Until([SelWait]::ElementIsVisible([SelBy]::XPath("//button[@label='Sign In']")))
        return $this.driver.FindElementByXPath("//button[@label='Sign In']")
    }
    #endregion
    #region UIActions
    [void] SignIn($userName, $password)
    {
        $this.tbUserName().SendKeys($userName)
        $this.tbPassword().SendKeys($password)
        $this.btnSignIn().Click()
    }
    #endregion
}

오류가 발생했습니다-

DBG]: PS C:\WINDOWS\system32>> 
exception is: At C:\WORK\PoC\PgUserLogin.psm1:15 char:6
+     [ChrmDriver] $driver
+      ~~~~~~~~~~
Unable to find type [ChrmDriver].
At C:\WORK\PoC\PgUserLogin.psm1:16 char:6
+     [WbDrvWait] $wait
+      ~~~~~~~~~
Unable to find type [WbDrvWait].
At C:\WORK\PoC\PgUserLogin.psm1:26 char:23
+         $this.wait = [WbDrvWait]::new($this.driver, 5000)
+                       ~~~~~~~~~
Unable to find type [WbDrvWait].

  • 답변 # 1

    타입 가속기는 using 직전에 가야합니다  진술.

  • 이전 ibm midrange - 접두사 파일에 대한 SETLL READE
  • 다음 큰 쿼리 조인에서 의심되는 별칭 문제