Python селен добавить в корзину - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь добавить в корзину, используя Selenium Python. Когда я запускаю код, веб-сайт показывает добавление в корзину, а затем появляется ошибка. Когда я go на странице корзины, он просто говорит, что товар не добавлен в корзину. Я что-то здесь не так делаю?

Мой код выглядит следующим образом:

#add to cart
driver.find_element_by_xpath('//form[@action="/cart/add"]/input[@class="add cart-btn clearfix"]').click()

HTML выглядит следующим образом:

<div class="product-form-wrapper">
 <form action="/cart/add" method="post" data-money-format="£{{amount}}" id="product-form-4424062369869" class="product-form" >
  <div id="product-variants" class="">
   <div class="select-wrapper">
    <select id="product-select" name="id" class="">  
     <option value="31655905919053">Medium</option>      
     <option value="31655906017357">Large</option>
     <option value="31655906148429">X-Large</option>
    </select>
   </div>
  </div>

  <input type="submit" name="button" class="add cart-btn clearfix" data-text="Add to Cart" value="Add to Cart" />

1 Ответ

0 голосов
/ 02 мая 2020

Извините за это. Пожалуйста, найдите веб-ссылку здесь: https://shop.palaceskateboards.com/products/lgylt0oiopch

Это мой код

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException


#tell location of the webdriver and call it 'driver'
driver = webdriver.Firefox()

#go to website
driver.get('https://shop.palaceskateboards.com/collections/t-shirts')

#click on element
driver.find_element_by_xpath("//*[@id='product-loop']/div[19]").click()                  

#wait for sizedropdown
wait=WebDriverWait(driver, 10)
something=wait.until(EC.presence_of_element_located((By.ID, 'product-select')))

#select size
Select(driver.find_element_by_id('product-select')).select_by_visible_text('Large')

#add to cart
driver.find_element_by_xpath('//form[@action="/cart/add"]/input[@class="add cart-btn clearfix"]').click()

#go to checkout
driver.get('https://shop.palaceskateboards.com/cart')
...