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

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

Я использую

  • Рубин 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 Ответ

0 голосов
/ 31 июля 2018

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

...