Как выбрать текущую рабочую смену из выпадающего списка - PowerShell / Selenium / Chrome - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь автоматизировать ввод некоторых данных в Chrome Браузер.

В частности, одним из полей, которое я хотел бы автоматизировать, является раскрывающийся список Work Shift. Этот список отображает список сегодняшних смен для машины. Это только сегодняшние смены, поэтому в списке может быть не более 3-х опций.

Прежде чем выбирать смену, вы должны выбрать Машину, а затем дату - и эти две вещи определяют, какие опции Вы видите доступным в поле Сдвиг.

'''
    $MyURL = "http://servername/login" #declaring the site I want to start at
    $Today = (Get-Date).ToString('d') 
    $Now = (Get-Date).ToString('t')
    $env:COMPUTERNAME #referencing computername for later
    $Env:Path += ";C:\temp\PS-SELENIUM\Selenium" 
    Add-Type -Path "C:\temp\PS-SELENIUM\Selenium\WebDriver.Dll"
    Add-Type -Path "c:\temp\PS-SELENIUM\Selenium\WebDriver.Support.Dll"
    $ChromeDriver = New-Object OpenQA.Selenium.Chrome.ChromeDriver
    $ChromeDriver.Navigate().GoToURL($MyURL)
    $ChromeDriver.FindElementbyName("User").SendKeys("plant")
    $ChromeDriver.FindElementbyName("password").SendKeys("plant")
    $ChromeDriver.FindElementbyName("submit").Submit()
    $ChromeDriver.Navigate().GoToURL("http://servername/machinepage") 
    $ChromeDriver.FindElementbyName("STATIONLINK").SendKeys("202") #assigning a machineID 
    $ChromeDriver.FindElementByName("SELECTEDDATE").SendKeys("$Today") #inputting the date 

---- Здесь я думаю, что я хочу вставить некоторый код, чтобы проанализировать, какие сдвиги доступны из выбора, и затем оценить, какой сдвиг перекрывается с текущее время, чтобы определить, следует ли заполнять поле a 1,2 или 3 (в данном случае) .------

---- Ниже приведена информация о веб-странице, на которой размещена информация о смене. После выбора машины и даты.

    <select id="SHIFTLINK" name="SHIFTLINK" onchange="SelectedShift(this);" required="" style="" 
    xpath="1">
            <option value=""></option>
            <option value="285426">1 [2/20/2020 6:00:00 AM - 2/20/2020 2:30:00 PM]</option>
            <option value="285427">2 [2/20/2020 2:30:00 PM - 2/20/2020 11:00:00 PM]</option>
            <option value="285428">3 [2/20/2020 11:00:00 PM - 2/21/2020 6:00:00 AM]</option>
        </select>



$ChromeDriver.FindElementByName("SHIFTLINK").SendKeys('2')
$ChromeDriver.FindElementByName("SHIFTLINK").SendKeys('2') #intentional
$ChromeDriver.FindElementByID("Submit").Submit()

Я прочитал в Интернете, что мне может понадобиться использовать функцию / оператор Select для вызова этих значений. Я пробовал параметр List - но я получаю сообщение об ошибке "термин, не распознанный как имя командлета". Вот строка c, которая мне не подходит:

List<WebElement> options = $ChromeDriver.FindElementsbyname("SHIFTLINK") #- doesn't work because List<WebElement> is not recognized
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...