2013-06-13 6 views
0

Вот гиперссылка кодPowershell нажмите на ссылку яваскрипта

<a href="javascript:void(1)" onclick="server_playOn(17,2, 'est', this);"> 
        Example 
        </a> 

Вот мой текущий код Powershell.

Get-Process iexplore | Foreach-Object { $_.CloseMainWindow() } 
$username = "user" 
$password = "pass" 
$ie = New-Object -comobject InternetExplorer.Application 
$ie.visible=$true 
$ie.FullScreen=$true 
$ie.navigate("http://www.example.com/en/index.shtml") 
while($ie.ReadyState -ne 4) {start-sleep -m 100} 
trap [Exception] 
{ 
    # This will happen if you're already logged in 
    if($_.Exception.Message -eq "Property 'value' cannot be found on this object; make sure it exists and is settable." -Or $_.Exception.Message -eq "You cannot call a method on a null-valued expression.") 
    { 
     # Try and skip this error 
     continue; } 
    else { 
     # Fail for other Exceptions 
    Write-Host -ForegroundColor Red $_.Exception.Message; } 
    } 

##if not logged in 
Write-Host -ForegroundColor Green "Logging into example.com"; 
$ie.document.getElementById("username").value = "$username" 
$ie.document.getElementById("pass").value = "$password" 
$ie.document.getElementById("frmLogin").submit() 
start-sleep 5 
$ie.navigate("http://www.example.com/en/link5.shtml") 
##need to add click code here 
+1

Просто мысли, но если вы не возражаете против использования 3-й библиотеки партии для достижения этой цели, то вы могли бы использовать что-то вроде Selenium PowerShell eXtensions (http://sepsx.codeplex.com/). Selenium имеет гораздо лучший API для взаимодействия с HTML-элементами. –

+0

Спасибо, Роберт. Я буду иметь в виду, если, так как я не знаю, как использовать его, но попробую. – Mowgli

+0

@JPBlanc См. Ответ, который отмечен как принятый ответ. – Mowgli

ответ

2

Добавьте эти строки в конце сценария:

$link = @($ie.Document.getElementsByTagName('A')) | Where-Object {$_.innerText -eq 'Example'} 
$link.click() 
+0

Удивительный человек. Я надеялся, что вы ответите на мой вопрос, и вы это сделали. Я читал много для ваших ответов, они очень полезны. – Mowgli

+0

Можете ли вы мне помочь. Я столкнулся с проблемой. Как я могу заставить его работать, если мне нужно щелкнуть ссылку. он находится в iframe. есть ли обходной путь для этого? спасибо – Mowgli

+0

IIRC вам нужно перейти на страницу iframe, получить ссылку и нажать на нее. –

Смежные вопросы