728x90
사전 조건 : 파이썬+셀레늄 설치
---
* 결제하기
import unittest import time from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0 my_id = "testuser@gmail.com" my_pw = "qwer1234" pay_id = "paymentuser@gmail.com" pay_pw = "abc1122!" class MyPaymentTest(unittest.TestCase): def setUp(self): #chrome 브라우저 self.driver = webdriver.Chrome(executable_path=r'D:\webdriver\chromedriver.exe') #phantomjs #self.driver = webdriver.PhantomJS(executable_path=r'D:\webdriver\phantomjs.exe') def test_login(self): driver = self.driver driver.set_window_size(1280, 720) #브라우저 해상도 #메인 페이지 driver.get("https://test.mysite.com/") time.sleep(3) #3초 대기 self.assertIn("My Site", driver.title) #브라우저 타이틀 검사 #로그인 driver.find_element_by_link_text("로그인").click() #하이퍼링크 문자열 클릭 elem_mail = driver.find_element_by_id("email_address") elem_pw = driver.find_element_by_id("password") elem_mail.send_keys(my_id) elem_pw.send_keys(my_pw) elem_pw.send_keys(Keys.RETURN) #엔터키 time.sleep(3) #결제 페이지 driver.get("https://test.mysite.com/pay") driver.find_element_by_id('paypal').click() driver.find_element_by_xpath("//*[@id='paypalpay']/input[12]").click() time.sleep(7) #페이팔 사이트에서 결제 진행 driver.find_element_by_id('payment_type_paypal').click() paypal_mail = driver.find_element_by_id("login_email") paypal_pw = driver.find_element_by_id("login_password") paypal_mail.send_keys(pay_id) paypal_pw.send_keys(pay_pw) paypal_pw.send_keys(Keys.RETURN) driver.find_element_by_name('submit.x').click() #결제 완료 팝업창 표시될 때까지 기다림 wait = WebDriverWait(driver, 100) element = wait.until(EC.visibility_of_element_located((By.ID,'popup_confirm_btn'))) element.click() #주문번호를 텍스트 파일에 저장 pay_orderId = driver.find_element_by_id('orderId').text f = open("D:/Python34/orderId.txt", 'w') f.write(pay_orderId) f.close() def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
* 환불하기
import unittest import time from selenium import webdriver from selenium.webdriver.common.keys import Keys pay_admin_id = "paymentadmin@gmail.com" pay_pw = "abc1122!" #주문번호 가져오기 f = open("D:/Python34/orderId.txt", 'r') pay_orderId = f.readline() f.close() class MyRefundTest(unittest.TestCase): def setUp(self): #chrome 브라우저 self.driver = webdriver.Chrome(executable_path=r'D:\webdriver\chromedriver.exe') #phantomjs #self.driver = webdriver.PhantomJS(executable_path=r'D:\webdriver\phantomjs.exe') def test_login(self): driver = self.driver driver.set_window_size(1280, 720) #브라우저 해상도 #메인 페이지 driver.get("https://www.sandbox.paypal.com") time.sleep(3) #로그인 driver.find_element_by_id('ul-btn').click() elem_mail = driver.find_element_by_id("email") elem_pw = driver.find_element_by_id("password") elem_mail.send_keys(pay_admin_id) elem_pw.send_keys(pay_pw) elem_pw.send_keys(Keys.RETURN) time.sleep(10) #주문번호로 검색 후 환불 driver.get("https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_history-search&nav=0%2e3%2e1") driver.find_element_by_xpath("//*[@id='search_In']/option[2]").click() driver.find_element_by_id('search').send_keys(pay_orderId) driver.find_element_by_name('search').click() time.sleep(5) driver.find_element_by_link_text('Issue a refund').click() time.sleep(1) driver.find_element_by_name('confirm.x').click() time.sleep(1) driver.find_element_by_name('submit.x').click() time.sleep(1) assert "Refund Complete" in driver.page_source def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
728x90
'Python' 카테고리의 다른 글
파이썬 참고 링크 모음 (0) | 2017.10.19 |
---|---|
파이썬3 & PyQt5 설치 및 구동 (0) | 2017.10.16 |
[python] 명시적 대기 예시 (0) | 2015.10.05 |
폴더 안의 모든 json 문서 읽어서 특정값 추출 (파이썬) (0) | 2015.06.17 |
[Mac] 특정 폴더의 파일에서 문자열 검색 (파이썬) (0) | 2015.01.28 |