복붙노트

[PYTHON] webdriver를 통해 javascript 팝업을 클릭하십시오.

PYTHON

webdriver를 통해 javascript 팝업을 클릭하십시오.

파이썬에서 Selenium webdriver를 사용하여 웹 페이지를 고칩니다.

내가 작업하고있는 웹 페이지에는 양식이 있습니다. 양식을 작성한 다음 제출 버튼을 클릭합니다.

팝업 창 (Javascript Alert)을 생성합니다. 나는 확실하지 않다, webdriver를 통해 팝업을 클릭하는 방법.

어떤 생각을하는 방법?

감사

해결법

  1. ==============================

    1.Python Webdriver 스크립트 :

    Python Webdriver 스크립트 :

    from selenium import webdriver
    
    browser = webdriver.Firefox()
    browser.get("http://sandbox.dev/alert.html")
    alert = browser.switch_to_alert()
    alert.accept()
    browser.close()
    

    웹 페이지 (alert.html) :

    <html><body>
        <script>alert("hey");</script>
    </body></html>
    

    webdriver 스크립트를 실행하면 경고를 표시하는 HTML 페이지가 열립니다. Webdriver는 즉시 경고로 전환하고이를 수락합니다. 그런 다음 Webdriver가 브라우저를 닫고 종료됩니다.

    경고가 있을지 확실하지 않으면 다음과 같이 오류를 catch해야합니다.

    from selenium import webdriver
    
    browser = webdriver.Firefox()
    browser.get("http://sandbox.dev/no-alert.html")
    
    try:
        alert = browser.switch_to_alert()
        alert.accept()
    except:
        print "no alert to accept"
    browser.close()
    

    경고 텍스트를 확인해야하는 경우 경고 개체의 텍스트 특성에 액세스하여 경고 텍스트를 가져올 수 있습니다.

    from selenium import webdriver
    
    browser = webdriver.Firefox()
    browser.get("http://sandbox.dev/alert.html")
    
    try:
        alert = browser.switch_to_alert()
        print alert.text
        alert.accept()
    except:
        print "no alert to accept"
    browser.close()
    
  2. ==============================

    2.

    from selenium import webdriver
    from selenium.webdriver.support import expected_conditions as EC
    
    driver = webdriver.Firefox()
    #do something
    if EC.alert_is_present:
        print "Alert Exists"
        driver.switch_to_alert().accept()
        print "Alert accepted"
    else:
        print "No alert exists"
    

    excepted_conditions에 대한 추가 정보 https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.expected_conditions.html

  3. ==============================

    3.내가 루비 바인딩을 사용하고 있지만 여기 Selenium Python Bindings 2 문서에서 발견 한 내용 : http://readthedocs.org/docs/selenium-python/en/latest/index.html

    내가 루비 바인딩을 사용하고 있지만 여기 Selenium Python Bindings 2 문서에서 발견 한 내용 : http://readthedocs.org/docs/selenium-python/en/latest/index.html

    Selenium WebDriver에는 팝업 대화 상자 처리 기능이 내장되어 있습니다. 팝업 창이 열리는 동작을 실행 한 후에는 다음과 같이 경고에 액세스 할 수 있습니다.

    alert = driver.switch_to_alert()
    

    이제 나는 당신이 그런 것을 할 수 있다고 생각한다.

    if alert.text == 'A value you are looking for'
      alert.dismiss
    else
      alert.accept
    end
    

    희망이 도움이됩니다!

  4. ==============================

    4.수락 여부를 묻는 메시지가 나타나면 팝업창을 수락하거나 클릭하십시오.

    수락 여부를 묻는 메시지가 나타나면 팝업창을 수락하거나 클릭하십시오.

    alert.accept
    

    어디에 경고는 클래스 selenium.webdriver.common.alert.Alert (드라이버)의 객체입니다. 받아들이는 것은 그 대상의 방법이다.

    출처

  5. ==============================

    5.양식 제출을 처리하는 javascript 함수에 따라 다릅니다. 해당 기능이없는 경우 게시물을 사용하여 양식을 제출하십시오.

    양식 제출을 처리하는 javascript 함수에 따라 다릅니다. 해당 기능이없는 경우 게시물을 사용하여 양식을 제출하십시오.

  6. from https://stackoverflow.com/questions/8631500/click-the-javascript-popup-through-webdriver by cc-by-sa and MIT license