Advertisement
Guest User

Untitled

a guest
Mar 5th, 2018
546
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.73 KB | None | 0 0
  1. from selenium import webdriver
  2. from selenium.webdriver.chrome.options import Options
  3. import pycountry
  4. import json
  5. import re
  6. import sys
  7. import os
  8. import time
  9. import datetime
  10. import requests
  11. import base64
  12. import uuid
  13. from bs4 import BeautifulSoup
  14. import httplib2
  15.  
  16. import selenium.webdriver
  17.  
  18.  
  19. username="email@gmail.com"
  20. password="parola"
  21. domain=".co.uk"
  22.  
  23. address = {}
  24. address['name']="Martin Kondov"
  25. address['addr1']="Zeil 321"
  26. address['addr2']="Zimmer A41"
  27. address['city']="Frankfurt am Main"
  28. address['state']="Hessen"
  29. address['phone']="+4915859014428"
  30.  
  31. product_to_order = "B01I3NX0RA"
  32.  
  33. amazon_url = "https://amazon"+domain+"/gp/product/"+product_to_order
  34.  
  35. #driver = webdriver.Chrome('/var/www/html/assets/autoorder/chromedriver')  # Optional argument, if not specified will search path.
  36.  
  37. chrome_options = Options()
  38. #chrome_options.add_argument("user-data-dir=C:/Users/user_name/AppData/Local/Google/Chrome/User Data");
  39. chrome_options.add_argument("--start-maximized")
  40. chrome_options.add_argument("--no-sandbox")
  41.            
  42. driver = webdriver.Chrome('/var/www/html/assets/autoorder/chromedriver',chrome_options=chrome_options)
  43. driver.implicitly_wait(3)
  44.            
  45. driver.get(amazon_url)
  46. logged_in = driver.find_elements_by_css_selector('#nav-link-yourAccount')
  47.  
  48. login_status = False
  49. if "youraccount" in logged_in[0].get_attribute("href"):
  50.     login_status = True
  51.  
  52. if login_status==False:
  53.     #LOGGING IN, DEFAULT
  54.     not_logged_in = driver.find_elements_by_css_selector('#nav-link-yourAccount')
  55.     driver.get(not_logged_in[0].get_attribute("href"))
  56.     input_email = driver.find_elements_by_css_selector('input#ap_email')[0]
  57.     input_pass = driver.find_elements_by_css_selector('input#ap_password')[0]
  58.     input_email.send_keys(username)
  59.     input_pass.send_keys(password)
  60.     driver.find_elements_by_css_selector("input[name='rememberMe']")[0].click()
  61.     driver.find_element_by_css_selector("#signInSubmit").click()
  62.    
  63. if "!ap/cvf/request" in driver.current_url:
  64.     verify_token = driver.find_elements_by_css_selector('input[name="verifyToken"]')[0].__getattribute__("value")
  65.     driver.find_element_by_css_selector("#continue").click()
  66.  
  67. if "!ap/cvf/verify" in driver.current_url:
  68.     verify_token = driver.find_elements_by_css_selector('input[name="verifyToken"]')[0].__getattribute__("value")
  69.     code_input = driver.find_elements_by_css_selector("input[name='code']")[0]
  70.     driver.find_element_by_css_selector("input[type='submit']").click()
  71.  
  72. #could be shown after verification
  73. if "signin" in driver.current_url:
  74.     authError = driver.find_element_by_css_selector("#auth-error-message-box")
  75.     errorMsg = authError.text()
  76.     print(errorMsg)
  77.     #return
  78.  
  79.  
  80.    
  81.  
  82. #ORDER ITEM
  83. driver.get(product_to_order)
  84. add_to_cart_btn = driver.find_elements_by_css_selector("input#add-to-cart-button")[0]
  85. add_to_cart_btn.click()
  86. add_to_cart_confirmation = driver.find_element_by_css_selector("div#huc-v2-order-row-container")
  87.  
  88. assert add_to_cart_confirmation.is_displayed()
  89.  
  90. #GO TO CART
  91. driver.get("https://www.amazon.de/gp/cart/view.html/ref=nav_cart")
  92. proceedToCheckout = driver.find_element_by_css_selector("input[name='proceedToCheckout']")
  93. gift_option = driver.find_element_by_css_selector("input#sc-buy-box-gift-checkbox")
  94. gift_option.click()
  95. proceedToCheckout.click()
  96.  
  97.  
  98. #ENTER ADDRESS
  99. enterAddressFullName = driver.find_element_by_css_selector("input[name='enterAddressFullName']")
  100. enterAddressAddressLine1 = driver.find_element_by_css_selector("input[name='enterAddressAddressLine1']")
  101. enterAddressAddressLine2 = driver.find_element_by_css_selector("input[name='enterAddressAddressLine2']")
  102. enterAddressCity = driver.find_element_by_css_selector("input[name='enterAddressCity']")
  103. enterAddressStateOrRegion = driver.find_element_by_css_selector("input[name='enterAddressStateOrRegion']")
  104. enterAddressPhoneNumber = driver.find_element_by_css_selector("input[name='enterAddressPhoneNumber']")
  105.  
  106.  
  107. enterAddressFullName.send_keys(address['name'])
  108. enterAddressAddressLine1.send_keys(address['addr1'])
  109. enterAddressAddressLine2.send_keys(address['addr2'])
  110. enterAddressCity.send_keys(address['city'])
  111. enterAddressStateOrRegion.send_keys(address['state'])
  112. enterAddressPhoneNumber.send_keys(address['phone'])
  113.  
  114. #select enterAddressCountryCode
  115. business_hours = driver.find_element_by_css_selector("option[value='BOTH']")
  116. country = driver.find_element_by_css_selector("option[value='"+pycountry.countries.get(alpha_2='DE')+"']")
  117. business_hours.click()
  118. #country.click()
  119.  
  120. sendToThisAddress = driver.find_element_by_css_selector("input[name='shipToThisAddress'")
  121. sendToThisAddress.click()
  122.  
  123.  
  124. #should be on gift page
  125. assert "buy/gift/handlers/display" in driver.current_url
  126.  
  127. giftForms = driver.find_elements_by_css_selector("textarea[data-action='gift-form-element']")
  128. for gf in giftForms:
  129.     gf.clear()
  130. hidePricesCheckbox = driver.find_element_by_css_selector("input[name=hidePrices]")
  131.  
  132. saveGiftOptions = driver.find_element_by_css_selector("div.save-gift-button-box input[type='submit']")
  133. saveGiftOptions.click()
  134.  
  135. #if item cannot be shipped
  136. if "buy/itemselect/handlers/display" in driver.current_url:
  137.     pageError = driver.find_element_by_class_name("div.page-level-error")
  138.     errorMsg = pageError.find_element_by_class_name("div.a-last").text()
  139.     print(errorMsg)
  140.     #return
  141.    
  142.    
  143.  
  144. #should be on shipping options page
  145. assert "buy/shipoptionselect/handlers/display" in driver.current_url
  146.  
  147. saveShippingOptions = driver.find_element_by_css_selector("div.save-sosp-button-box input[type='submit']")
  148. saveShippingOptions.click()
  149.  
  150. assert "buy/payselect/handlers/display" in driver.current_url
  151.  
  152.  
  153. saveShippingOptions = driver.find_element_by_css_selector("input[id='continue-top']")
  154. #saveShippingOptions.click()
  155.  
  156. driver.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement