Autoit을 사용하여 나타날 수 있는 모든 자바스크립트 경고 및 확인을 닫으려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/1709958

문제

저는 셀레늄으로 테스트 중이고 페이지 로드 시 많은 일이 발생합니다.저는 autoit에 대해 알게 되었고 이것이 모든 자바스크립트 대화 상자 문제를 처리할 수 있다고 생각했습니다.나는 이것을 처리할 수 있는 autoit 스크립트를 웹에서 검색하고 있었습니다...

다른 옵션도 도움이 될 것입니다!

모든 코드가 반드시 필요한 것은 아니지만 올바른 방향으로 가는 것이 도움이 될 것입니다.

도움이 되었습니까?

해결책

좋습니다. 이 솔루션이 저에게 효과적입니다...여기서는 창 2개를 닫을 수 있었습니다.또한 나는 그들의 이름을 기반으로 팝업을 처리할 수 있을 것입니다.스크립트를 시작한 후에는 항상 백그라운드에서 실행됩니다.종료하고 싶을 때는 작업 관리자나 오른쪽 작업 표시줄 영역에서 autoit을 닫으면 됩니다.

While True
If WinWait('Name of your Popup', '', 1) == 1 Then
    ;Wait for page to load if found
    Sleep(10000)
    ;Close Page
    Send('!{F4}') 
    Sleep(5000)
    ;Confirm Dialog
    Send('{ENTER}') 
    Sleep(1000)
    ;Close Lanucher Page
    Send('!{F4}') 
    Sleep(5000)
    ;Confirm Dialog
    Send('{ENTER}') 
EndIf
;Let another thread have a turn
sleep(3)
WEnd

또한 이것은 Python 내에서 직접 가능합니다. 세부 사항은 다음과 같습니다. http://www.parrisstudios.com/?p=308, 하지만 여전히 autoit3이 필요합니다.

다른 팁

경고 상자에 문제가 있는 경우 프로그래밍 방식으로 경고 상자를 비활성화하거나 조건에 따라 경고 상자를 끄는 별도의 모드를 코드에 생성할 수 있습니다(예:디버그 모드).

매크로 기록 프로그램은 생각만큼 잘 작동하지 않습니다.일반적으로 매크로 기록 프로그램은 마우스 클릭 위치와 키 누르기 타이밍을 기록합니다.더 나은 매크로 기록 프로그램은 (일반적으로 이미지 처리) 및 (드물게) 컴퓨터 비전 기술을 사용합니다.이러한 기술을 사용하는 솔루션은 일반적으로 매우 비쌉니다.(좌석당 5k-10k) [더 나은 버전의 이름이 기억나지 않습니다. QuickTest일 수도 있음, HP에 인수된 회사에서 만든 것입니다.]

저는 autoit을 사용하여 웹페이지와 상호 작용하려고 했는데 어리석은 자바스크립트 경고로 인해 모든 것이 계속 중단되었고 마침내 이를 비활성화하는 방법을 알아내서 여기에 게시하려고 생각했습니다.

#include <ie.au3>

$oIE = _IEAttach('https://www.site.com','URL')

$EventObject=ObjEvent($oIE.document,"IEEvent_")
Func IEEvent_onreadystatechange()
    $readystate=$oIE.document.readystate
    ConsoleWrite ($readystate & @CRLF )
    if $readystate='interactive' then killalert()
EndFunc

while 1
    sleep(100)
WEnd

func killalert()
Local $o_head = $oIE.document.all.tags("HEAD").Item(0)
Local $o_script = $oIE.document.createElement("script")
With $o_script
    .language = "jscript"
    .type = "text/javascript"
    .text = 'function alert(message) {};'
EndWith
$o_head.appendChild($o_script)
EndFunc

기본적으로 이것이 하는 일은 페이지 준비 상태가 '대화형'일 때 autoit에서 호출되는 함수를 갖는 것입니다(분명히 이것은 대부분의 페이지가 로드된 후이지만 내 생각에 아무것도 "실행"하기 전입니다). 아무 작업도 수행하지 않도록(확인을 클릭해야 하는 경고 대화 상자 없음) 경고() 함수를 재정의합니다.나는 이것을 테스트했고 작동합니다.

페이지 내부의 프레임에서 호출되는 경고() 함수가 있는 경우 기본 문서 대신 onreadystatechange 이벤트와 프레임의 Readystate 속성을 사용해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top