Vous devez parcourir la page pour vous assurer que vous obtenez le bon objet/élément et le faire un cas d'utilisation à la fois. Vous devez également vérifier si l'objet/élément possède les propriétés et les méthodes dont vous avez besoin pour résoudre votre cas d'utilisation.
Par exemple, il suffit de faire fonctionner le système de connexion.
# $path = "C:\Users\Dr.Salya\Downloads"
# $filename = "rateonlyl-455.zip"
$url = "https://vertexinc.custhelp.com/app/utils/login_form"
# $url2 = "https://download-ie.flexnetoperations.com/512175/1386/77/17129077/rateonlyl-455.zip?ftpRequestID=2321180473&server=download-ie.flexnetoperations.com&dtm=DTM20200820125043ODA0MDU5NDEz&authparam=1597953043_bf5ca04b9a74eeb53a272c20ea148517&ext=.zip/"
$ie = New-Object -com InternetExplorer.Application
$ie.visible = $true
$ie.silent = $false
$ie.navigate($url)
while($ie.ReadyState -ne 4){start-sleep -m 100}
if ($ie.document.url -Match "invalidcert")
{
$sslbypass = $ie.Document.getElementsByTagName('a') |
where-object {$_.id -eq "overridelink"}
$sslbypass.click()
start-sleep -s 5
}
$ie.Document.forms |
Select-Object className, id, tagName, innerText, outerText
# Results
<#
className : rn_OpenLoginForm rn_OAuthForm
id : rn_OpenLogin_6_Info
tagName : FORM
innerText :
What will happen:
When you click on this button you will be taken to Yahoo.
Once you log in, Yahoo will verify you and send you back here where
you'll be logged in!
outerText :
What will happen:
When you click on this button you will be taken to Yahoo.
Once you log in, Yahoo will verify you and send you back here where
you'll be logged in!
className :
id : rn_LoginForm_7_Form
tagName : FORM
innerText : Username (Your email address)
Password
outerText : Username (Your email address)
Password
#>
$ie.Document.forms.item('rn_LoginForm_7_Form') |
Select-Object -Property className, Name, id, Type, Value, ie9_tagName |
Format-Table -AutoSize
# Results
<#
className name id type value ie9_tagName
--------- ---- -- ---- ----- -----------
Contact.Login rn_LoginForm_7_Username text INPUT
Contact.Password rn_LoginForm_7_Password password INPUT
rn_LoginForm_7_Submit submit Log In INPUT
#>
$ie.Document.getElementById('rn_LoginForm_7_Username').Value = 'SomeUserName'
$ie.Document.getElementById('rn_LoginForm_7_Password').Value = 'Password'
$ie.Document.getElementById('rn_LoginForm_7_Submit').Click()
... puis passer à la page suivante, s'il y en a une, comme le fait ce site. Cependant, comme je n'ai pas de compte à utiliser sur ce site, je ne peux pas exécuter d'autres actions. Pourtant, la simple extraction d'une liste de liens, même à partir de la page de connexion, serait la même pour toute page suivante.
$ie.Document.links |
ForEach-Object {
[PSCustomObject]@{
className = $PSItem.className
tagName = $PSItem.tagName
innerText = $PSitem.innerText
outerText = $PSitem.outerText
href = $PSItem.href
ClickMethod = $PSItem.Click
}}
# Results
<#
className :
tagName : A
innerText : | myVertex
outerText : | myVertex
href : javascript:void
ClickMethod : void click ()
className : rn_LoginProvider rn_Yahoo
tagName : A
innerText : Yahoo
outerText : Yahoo
href : javascript:void(0)
ClickMethod : void click ()
className :
tagName : A
innerText : Forgot your password?
outerText : Forgot your password?
href : https://vertexinc.custhelp.com/app/utils/account_assistance/session/L3RpbWUvMTU5ODA0OTI1Ni9nZW4vMTU5ODA0OTI1Ni9zaWQvZlU4S0VoTlNVd2lJVjh1bmZDcTVVUHFvWWRF
TFZOVDVPU3JNYXJWeWV3SXdsYSU3RUclN0VjQ3VOc1BTaWtxbGFmMkFKclY0bGZYcTZaa1B4T1g1cF9ISVhRbVpwaXF5c3ZQbUVIYVNjckhLR3ByazNYRDNfaDBQQVZXQSUyMSUyMQ%3D%3D
ClickMethod : void click ()
className :
tagName : A
innerText : Sign Up
outerText : Sign Up
href : https://vertexinc.custhelp.com/app/utils/create_account/redirect/utils%252Faccount_confirmation/session/L3RpbWUvMTU5ODA0OTI1Ni9nZW4vMTU5ODA0OTI1Ni9zaWQv
ZlU4S0VoTlNVd2lJVjh1bmZDcTVVUHFvWWRFTFZOVDVPU3JNYXJWeWV3SXdsYSU3RUclN0VjQ3VOc1BTaWtxbGFmMkFKclY0bGZYcTZaa1B4T1g1cF9ISVhRbVpwaXF5c3ZQbUVIYVNjckhLR3ByazNY
RDNfaDBQQVZXQSUyMSUyMQ%3D%3D
ClickMethod : void click ()
className :
tagName : A
innerText :
outerText :
href : https://vertexinc.custhelp.com/app/home/session/L3RpbWUvMTU5ODA0OTI1Ni9nZW4vMTU5ODA0OTI1Ni9zaWQvZlU4S0VoTlNVd2lJVjh1bmZDcTVVUHFvWWRFTFZOVDVPU3JNYXJWeWV3
SXdsYSU3RUclN0VjQ3VOc1BTaWtxbGFmMkFKclY0bGZYcTZaa1B4T1g1cF9ISVhRbVpwaXF5c3ZQbUVIYVNjckhLR3ByazNYRDNfaDBQQVZXQSUyMSUyMQ%3D%3D
ClickMethod : void click ()
className :
tagName : A
innerText : Privacy Policy
outerText : Privacy Policy
href : javascript:showPrivacyPolicy();
ClickMethod : void click ()
className :
tagName : A
innerText : Terms of Use
outerText : Terms of Use
href : javascript:showTerms();
ClickMethod : void click ()
className :
tagName : A
innerText : Contact: 1-800-281-1900
outerText : Contact: 1-800-281-1900
href : tel:1-800-281-1900
ClickMethod : void click ()
className :
tagName : A
innerText :
outerText :
href : https://www.facebook.com/vertexinc1/
ClickMethod : void click ()
className :
tagName : A
innerText :
outerText :
href : https://twitter.com/vertexinc
ClickMethod : void click ()
className :
tagName : A
innerText :
outerText :
href : https://www.linkedin.com/company/vertex-inc.
ClickMethod : void click ()
className :
tagName : A
innerText :
outerText :
href : https://www.youtube.com/user/vertexinc
ClickMethod : void click ()
#>
$ie.Document.links |
Select-Object -Property outerText, href
# Results
<#
outerText href
--------- ----
| myVertex javascript:void
Yahoo javascript:void(0)
Forgot your password? https://vertexinc.custhelp.com/app/utils/account_assistance
Sign Up https://vertexinc.custhelp.com/app/utils/create_account/redirect/utils%252Faccount_confirmation
https://vertexinc.custhelp.com/app/home/
Privacy Policy javascript:showPrivacyPolicy();
Terms of Use javascript:showTerms();
Contact: 1-800-2... tel:1-800-281-1900
https://www.facebook.com/vertexinc1/
https://twitter.com/vertexinc
https://www.linkedin.com/company/vertex-inc.
https://www.youtube.com/user/vertexinc
#>
$ie.Document.getElementsByTagName('A')[4] |
ForEach-Object {
[PSCustomObject]@{
className = $PSItem.className
id = $PSItem.id
tagName = $PSItem.tagName
innerText = $PSitem.innerText
outerText = $PSitem.outerText
href = $PSItem.href
ClickMethod = $PSItem.Click
}}
# Results
<#
className :
id :
tagName : A
innerText : Sign Up
outerText : Sign Up
href : https://vertexinc.custhelp.com/app/utils/create_account/redirect/utils%252Faccount_confirmation
ClickMethod : void click ()
#>
($ie.Document.getElementsByTagName('A') |
Where outerText -eq 'Forgot your password?').Click()
($ie.Document.getElementsByTagName('A') |
Where outerText -eq 'Sign Up').Click()
Enfin, vous pouvez automatiser les sites qui le permettent. Certains sites n'autorisent pas l'automatisation de leurs propriétés (ou d'une partie d'entre elles), ils les codent activement pour l'empêcher.