Как я могу автоматизировать мой скрипт Powershell для проверки ежедневности www.vodafone.de страницы? - PullRequest
0 голосов
/ 13 февраля 2020

Когда я нажимаю https://www.vodafone.de/shop/authentifizierung.html?btype=decide&configURL=%2Fscripts%2Fecommerce.config.auth.json&icmp=mobilfunk: vvl , он запрашивает мой номер msisdn. Когда я даю свой номер msisdn, он просит меня нажать «запросить код sms».

Теперь я написал свой скрипт Powershell, и все работает до тех пор, пока я не сообщу свой номер msisdn с помощью скрипта и не произойдет ошибка «Номер мобильного телефона Вы ввели неверно. Вы допустили ошибку при вводе? Или это не номер Vodafone? Пожалуйста, попробуйте еще раз ".

У меня есть перепроверенный тип переменной" число "и тот, который я использую. Все правильно. Но почему он не принимает номер msisdn, который я передаю. Когда я ввожу этот номер msisdn вручную, он будет работать.

Мой код Powershell:

 $number = "0123345687"
 $number.gettype().fullname
 $ie = New-Object -Com 'internetexplorer.application' ;
 $ie.visible=$true;
 $url = "www.vodafone.de"
 write-Host "$url"
 [Net.ServicePointManager]::SecurityProtocol = 
 [Net.SecurityProtocolType]::Tls12
 $href= ((Invoke-WebRequest $url).Links|Where innerText -like 
 “Mobilfunk”).href
 write-host "$href"
 $webreq = Invoke-WebRequest $url$href 
 $webreq.Content |Out-File C:\Users\Puranikn\tmp.txt
 $authentication=Select-String -Path "C:\Users\Puranikn\tmp.txt" -Pattern 
 'config.auth.json'
 $vvlurl= ("$authentication" -split '"')[1]
 write-host $vvlurl

$ie.navigate("https://www.vodafone.de/shop/authentifizierung.html? 
btype=decide&configURL=%2Fscripts%2Fecommerce.config.auth.json&
icmp=mobilfunk:vvl");
While ($ie.Busy -eq $true) {Start-Sleep -Seconds 20;}
$ie.Document.getElementById("msisdn").value=$number
#$div = $ie.Document.getElementsByClassName('ws2-btn btn-red') | where- 
object {$_.span -eq 'SMS-Code anfordern'}
$Word = New-Object -ComObject Word.Application
$submitButton = $ie.Document.getElementsByClassName('ws2-btn btn-red') | 
Select-Object -First 1
$submitButton.click()

1 Ответ

0 голосов
/ 14 февраля 2020

Что касается этого ...

Но я не понимаю, какой должна быть Кодовая линия, чтобы нажать на "код запроса-смс"

... это потому что вы никогда не просили об этом.

Пример навигации по сайту с событием клика.

# Set your properteis
$password = '1234'
$loginUrl = 'https://pwpush.com'

# Create your browser session
$ie = New-Object -com internetexplorer.application
$ie.visible = $true
$ie.navigate($loginUrl)

# Pause the browser to wait for load
while ($ie.Busy -eq $true) { Start-Sleep -Seconds 1 }

# Navigate the page enter data
($ie.document.getElementById('password_payload') | 
select -first 1).value = $password

Start-Sleep -Seconds 1 

<#
Navigate to the element to take action on. 
#>
$ie.Document.getElementsByName('commit').Item().Click()
Start-Sleep -Seconds 1 

Это может быть разным для каждого сайта, или сайт может изменить его без уведомления. Таким образом, вы должны очистить сайт, чтобы найти правильный.

$Pwpush = Invoke-WebRequest -Uri 'https://pwpush.com' -SessionVariable pw
$Pwpush.AllElements
$Pwpush.Forms
$Pwpush.Forms.Fields
$Pwpush.Forms[0] | Format-List -Force
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...