Selenium запускает разные скрипты одновременно - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь купить предметы в магазине, но хочу, чтобы я мог покупать несколько предметов одновременно.Я создал вложенный словарь с такой информацией, как полное имя, адрес электронной почты ....

Например, я захожу в интернет-магазин и хочу купить куртку и шапку одновременно.«P» означает открытие первой страницы, а «r» - открытие второго окна.То, чего я добиваюсь сейчас, - это то, что я могу купить первый продукт, и он заполняет всю информацию.Я ввожу 'p' 1 и из словаря переходит на соответствующий сайт.Я также хочу 'r' 2, и на этот раз выполняется ['product_web'] из 2 и заполняется все соответствующее полное имя, адрес электронной почты и т. Д.

Когда я повторяю код из #toevoegen aan basket доbetalen и замените 'p' на 'r', я получаю ошибку.

Я знаю, что происходит с ошибкой, и не могу ее решить, и поэтому я задаю этот вопрос.

selenium.common.exceptions.ElementClickInterceptedException: Сообщение: щелчок элемента перехвачен:

    driver = webdriver.Chrome(r'C:\Users\XXXX\OneDrive\Desktop\chromedriver.exe')
    driver.get(Information[p]['product_web'])
    driver.execute_script("window.open('" + Information[r]['product_web'] +"');")
    # toevoegen aan basket
    driver.find_element_by_xpath('//input[@name="commit"]').click()
    time.sleep(2)
    # check out
    driver.find_element_by_xpath('//*[@id="cart"]/a[2]').click()
    #full name
    driver.find_element_by_xpath('//*[@id="order_billing_name"]').send_keys(Information[p]['naam'])
    #email
    driver.find_element_by_xpath('//*[@id="order_email"]').send_keys(Information[p]['email'])
    #telefoon
    driver.find_element_by_xpath('//*[@id="order_tel"]').send_keys(Information[p]['telefoonnummer'])
    # adres
    driver.find_element_by_xpath('//*[@id="bo"]').send_keys(Information[p]['straat'])
    # stad
    driver.find_element_by_xpath('//*[@id="order_billing_city"]').send_keys(Information[p]['stad'])

    # postcode
    driver.find_element_by_xpath('//*[@id="order_billing_zip"]').send_keys(Information[p]['postcode'])

    # land kiezen
    selecteren1 = Select(driver.find_element_by_id("order_billing_country"))
    selecteren1.select_by_value("NL")

    # paypal kiezen
    selecteren = Select(driver.find_element_by_id("credit_card_type"))
    selecteren.select_by_value("paypal")

    # Akkoord gaan
    driver.find_element_by_xpath('//*[@id="cart-cc"]/fieldset/p/label/div/ins').click()

    # betalen
    driver.find_element_by_xpath('//*[@id="pay"]/input').click()


```Information = {
                1:{"product_web":"https://",
               "naam":"FFFF",
               "straat":"MSTRAAT",
               "email":"TEST@live.nl",
               "stad":"AMSTERDAM",
               "postcode":"3182FF",
                "telefoonnummer":"0912310.."},

                2:{"product_web":"https://",
               "naam":"GGG",
               "straat":"GSTRAAT",
               "email":"NP@live.nl",
               "stad":"ROTTERDAM",
               "postcode":"4921BE",
                "telefoonnummer":"0511543210"}}

Я не уверен, что это правильный подход для получения необходимой информации, такой как Информация [p] ['product_web'].Если у вас есть лучшее решение, я тоже буду его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...