Python Selenium не нажимает <a> - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь заставить свой сценарий селена щелкнуть ссылку <a> в модальном режиме. Так что это HTML;

<div class="modal-btns">
                    <a href="" id="confirm-btn" class="btn-primary-md">Get Now</a>
                    <a href="" id="decline-btn" class="btn-control-md">Cancel</a>
                </div>

Теперь я хочу нажать на кнопку Get Now. Я попробовал это;

            button = browser.find_elements_by_css_selector('#confirm-btn')
            for e in elements:
                try:
                    e.click()
                except:
                    what = 0
            print "Clicked!"

Я запустил этот скрипт без режима без головы. В консоли он напечатал Clicked!, а в браузере ничего не произошло.

Как я могу сделать эту работу?

==== РЕДАКТИРОВАТЬ ====

Есть также кнопка, которая запускает модальный режим, который просто работает .. Эта кнопка HTML;

<div class="action-button">
                                                <button type="button" class="btn-fixed-width-lg btn-primary-lg PurchaseButton" data-button-type="main" data-button-action="get" data-expected-price="0" data-bc-requirement="0" data-product-id="222406" data-item-id="1744006" data-item-name="SBC Cannon 2.0" data-asset-type="TShirt" data-asset-type-display-name="T-Shirt" data-item-type="Asset" data-expected-currency="1" data-expected-seller-id="52246" data-seller-name="ViacomIsPoo" data-userasset-id="" style="">
                                                    Get
                                                </button>
                        </div>

Она нажимает эту кнопку по этому коду:

            elements = browser.find_elements_by_xpath("//button[contains(@class, 'PurchaseButton')]")
            for e in elements:
                try:
                    e.click()
                except:
                    what = 0

Таким образом, полный код будет;

            elements = browser.find_elements_by_xpath("//button[contains(@class, 'PurchaseButton')]")
            for e in elements:
                try:
                    e.click()
                except:
                    what = 0
            time.sleep(4)
            button = browser.find_element_by_id('confirm-btn')
            for e in elements:
                try:
                    e.click()
                except:
                    what = 0
            print "Clicked!"

Но он не нажимает кнопку подтверждения ...

1 Ответ

1 голос
/ 13 марта 2019

Попробуйте это:

driver.execute_script("document.getElementById('confirm-btn').click()")
...