Страница ошибки появляется при нажатии кнопки в браузере без заголовка в Ruby-Selenium

Я автоматизирую процесс покупки карты Walmart от выбора продукта до завершения процесса оформления заказа. Я использую браузер Chrome без головы для этого в Ruby Selenium. Когда я нажимаю кнопку "Оформить заказ" после добавления товара в корзину, он переходит ко мне на страницу "Ошибка" и возвращает мне заголовок страницы, "Walmart Omnivore", и процесс проверки завершается неудачно, однако процесс оплаты завершается успешно, когда я запускаю браузер. Проблема только в оформлении заказа в безголовом браузере.

я использую

  • Ruby 2.4.3
  • Selenium Gem: selenium-webdriver-3.5.2
  • Версия Chrome: версия 67.0.3396.99 (официальная сборка) (64-разрядная версия)

Вот мой код,

require 'selenium-webdriver'

class TestBrowserHeadless


  chromePath = "chromedriver.exe" #Chrome browser exe file path

   #    Selenium::WebDriver::Chrome.driver_path = chromePath
  #   driver = Selenium::WebDriver.for :chrome, switches: ['--incognito']
  #   driver.manage.window.maximize

  Selenium::WebDriver::Chrome.driver_path = chromePath
  options = Selenium::WebDriver::Chrome::Options.new
  options.add_argument('--headless')

  driver = Selenium::WebDriver.for :chrome, options: options

  driver.get "https://www.walmart.com/"

    puts driver.title

    driver.save_screenshot("test1.png")

    sleep 5

    search_field = driver.find_element(:id, 'global-search-input')
    search_field.click
    search_field.send_keys("623649985")
    search_field.submit

    sleep 5
    driver.save_screenshot("test2.png")

    puts driver.title

    prod_name = driver.find_element(:xpath, "//img[@class='Tile-img']")
    prod_name.click

    sleep 5
    driver.save_screenshot("test3.png")
    puts driver.title


    puts "Adding item to Cart"
    button_addCart = driver.find_element(:xpath, "//button[text()='Add to Cart']")
    button_addCart.click
    sleep 3

    driver.save_screenshot("test4.png")
    puts driver.title

    checkout_Btn = driver.find_element(:xpath, "//div[@class='Cart-PACModal-POSContainer']/descendant::button[text()='Check Out']")
    checkout_Btn.click

    driver.save_screenshot("test5.png")
    sleep 4
    driver.save_screenshot("test6.png")
    puts driver.title
    puts "success"

    end

ПРИМЕЧАНИЕ:: Кроме того, я попытался нажать кнопку "Оформить заказ" после входа в систему пользователя Walmart и нашел тот же результат

1 ответ

Эта проблема решена с помощью "безголового" драгоценного камня рубина. https://leonid.shevtsov.me/post/headless/

Другие вопросы по тегам