如何使用selenium和python定位“PayPal支付”元素?

2024-10-08 20:17:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试在Newegg.com上自动购买产品,我正在使用Python和Selenium来实现这一点。我已经完成了运输,交货和最后阶段,这是付款。我试图找到“PayPal支付”按钮元素,但无法找到。我已经尝试了我所知道的一切,xpath、css选择器Pay with PayPal Button

我总是得到的输出/错误是:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="buttons-container"]/div/div/div"}
  (Session info: chrome=89.0.4389.90)

请帮忙!谢谢

编辑:以下是网站“代码”,涵盖了“使用贝宝支付”元素。我没有分享整个网站的代码,因为它会泄露我的信息

<div class="summary-actions"><p class="form-note">By placing your order, you agree to Newegg's<!-- --> <a href="#" title="">Privacy Policy</a>&nbsp;and&nbsp;<a href="#">Terms of Use</a>.</p><button id="btnCreditCard" type="button" class="btn btn-primary btn-wide display-none">Place Order<!-- --> <i class="fa fa-caret-right" aria-label="Next Step"></i></button><div id="zoid-paypal-button-f17e959efc" class="btn-wide"><div id="zoid-paypal-buttons-3951bb4696_mdu6mdy6mjg" class="paypal-buttons paypal-buttons-context-iframe paypal-buttons-label-pay paypal-buttons-layout-vertical" data-paypal-smart-button-version="5.0.211" style="height: 32px; transition: all 0.2s ease-in-out 0s;"><style>
                    #zoid-paypal-buttons-3951bb4696_mdu6mdy6mjg {
                        position: relative;
                        display: inline-block;
                        width: 100%;
                        min-height: 25px;
                        min-width: 150px;
                        max-width: 750px;
                        font-size: 0;
                    }

                    #zoid-paypal-buttons-3951bb4696_mdu6mdy6mjg > iframe {
                        position: absolute;
                        top: 0;
                        left: 0;
                        width: 100%;
                        height: 100%;
                    }

                    #zoid-paypal-buttons-3951bb4696_mdu6mdy6mjg > iframe.component-frame {
                        z-index: 100;
                    }

                    #zoid-paypal-buttons-3951bb4696_mdu6mdy6mjg > iframe.prerender-frame {
                        transition: opacity .2s linear;
                        z-index: 200;
                    }

                    #zoid-paypal-buttons-3951bb4696_mdu6mdy6mjg > iframe.visible {
                        opacity: 1;
                    }

                    #zoid-paypal-buttons-3951bb4696_mdu6mdy6mjg > iframe.invisible {
                        opacity: 0;
                        pointer-events: none;
                    }

                    #zoid-paypal-buttons-3951bb4696_mdu6mdy6mjg > .smart-menu {
                        position: absolute;
                        z-index: 300;
                        top: 0;
                        left: 0;
                        width: 100%;
                    }
                </style><iframe allowtransparency="true" name="__zoid__paypal_buttons__eyJ1aWQiOiJ6b2lkLXBheXBhbC1idXR0b25zLTM5NTFiYjQ2OTZfbWR1Nm1keTZtamciLCJjb250ZXh0IjoiaWZyYW1lIiwidGFnIjoicGF5cGFsLWJ1dHRvbnMiLCJ2ZXJzaW9uIjoiOV8wXzYzIiwiY2hpbGREb21haW4iOiJodHRwczovL3d3dy5wYXlwYWwuY29tIiwicGFyZW50RG9tYWluIjoiaHR0cHM6Ly9zZWN1cmUubmV3ZWdnLmNvbSIsInBhcmVudCI6eyJ0eXBlIjoicGFyZW50IiwiZGlzdGFuY2UiOjB9LCJwcm9wcyI6eyJ0eXBlIjoicmF3IiwidmFsdWUiOiJ7XCJmdW5kaW5nU291cmNlXCI6XCJwYXlwYWxcIixcInN0eWxlXCI6e1wibGFiZWxcIjpcInBheVwiLFwibGF5b3V0XCI6XCJ2ZXJ0aWNhbFwiLFwiY29sb3JcIjpcIndoaXRlXCIsXCJzaGFwZVwiOlwicmVjdFwiLFwidGFnbGluZVwiOmZhbHNlLFwiaGVpZ2h0XCI6MzJ9LFwib25Jbml0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCI2MTgxMGQ4N2I2X21kdTZtZHk2bWpnXCIsXCJuYW1lXCI6XCJvbkluaXRcIn19LFwiY3JlYXRlT3JkZXJcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcImM1NTAxZDE5YjZfbWR1Nm1keTZtamdcIixcIm5hbWVcIjpcImNyZWF0ZU9yZGVyXCJ9fSxcIm9uQXBwcm92ZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwiYzhjMmQ4ZDI3Zl9tZHU2bWR5Nm1qZ1wiLFwibmFtZVwiOlwib25BcHByb3ZlXCJ9fSxcIm9uQ2xpY2tcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcImJlYzYwMWJmOTlfbWR1Nm1keTZtamdcIixcIm5hbWVcIjpcIm9uQ2xpY2tcIn19LFwic3RvcmFnZVN0YXRlXCI6e1wiZ2V0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCIyNDMzZGNkNTRiX21kdTZtZHk2bWpnXCIsXCJuYW1lXCI6XCJnZXRcIn19LFwic2V0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCI5NTY1NmJkYzE4X21kdTZtZHk2bWpnXCIsXCJuYW1lXCI6XCJzZXRcIn19fSxcInNlc3Npb25TdGF0ZVwiOntcImdldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwiYjVjODQ5MzRjOF9tZHU2bWR5Nm1qZ1wiLFwibmFtZVwiOlwiZ2V0XCJ9fSxcInNldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwiZjY1ZjBkNjk1Zl9tZHU2bWR5Nm1qZ1wiLFwibmFtZVwiOlwic2V0XCJ9fX0sXCJjb21wb25lbnRzXCI6W1wiYnV0dG9uc1wiXSxcImxvY2FsZVwiOntcImNvdW50cnlcIjpcIlVTXCIsXCJsYW5nXCI6XCJlblwifSxcImdldFByZXJlbmRlckRldGFpbHNcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcImJlODU4NGRmN2ZfbWR1Nm1keTZtamdcIixcIm5hbWVcIjpcImdldFByZXJlbmRlckRldGFpbHNcIn19LFwiZ2V0UG9wdXBCcmlkZ2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcImE4MzI3NDEzZTNfbWR1Nm1keTZtamdcIixcIm5hbWVcIjpcImdldFBvcHVwQnJpZGdlXCJ9fSxcImdldFF1ZXJpZWRFbGlnaWJsZUZ1bmRpbmdcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcIjY1MTJlYjZiOTJfbWR1Nm1keTZtamdcIixcIm5hbWVcIjpcImdldFF1ZXJpZWRFbGlnaWJsZUZ1bmRpbmdcIn19LFwiY2xpZW50SURcIjpcIkFTcFVjdHJPLVZ6eHZlMW51MlhHOG95cUo3VG5LYUZFOW45WjlVRjFYWXY0MTdkc0NKemZ6TG1hYzU5TzkwcHBNS0FzRlRNM0dKcW1CMkN6XCIsXCJlbmFibGVUaHJlZURvbWFpblNlY3VyZVwiOmZhbHNlLFwiY29ycmVsYXRpb25JRFwiOlwiZGJhNTQyZjk0MjNkZFwiLFwic3RvcmFnZUlEXCI6XCJlYzYwOWQyZTA4X21kdTZtZGE2bnRhXCIsXCJzZXNzaW9uSURcIjpcIjBkZjlkMDVjZWRfbWR1Nm1kYTZudGFcIixcImJ1dHRvblNlc3Npb25JRFwiOlwiN2RjYzVjNWVkOV9tZHU2bWR5Nm1qZ1wiLFwiZW52XCI6XCJwcm9kdWN0aW9uXCIsXCJmdW5kaW5nRWxpZ2liaWxpdHlcIjp7XCJwYXlwYWxcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjpmYWxzZX0sXCJwYXlsYXRlclwiOntcImVsaWdpYmxlXCI6ZmFsc2UsXCJwcm9kdWN0c1wiOntcImZsZXhcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInBheUluNFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9fX0sXCJjYXJkXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcImJyYW5kZWRcIjp0cnVlLFwiaW5zdGFsbG1lbnRzXCI6ZmFsc2UsXCJ2ZW5kb3JzXCI6e1widmlzYVwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9LFwibWFzdGVyY2FyZFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiYW1leFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiZGlzY292ZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJoaXBlclwiOntcImVsaWdpYmxlXCI6ZmFsc2UsXCJ2YXVsdGFibGVcIjpmYWxzZX0sXCJlbG9cIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJqY2JcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6dHJ1ZX19fSxcInZlbm1vXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJpdGF1XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJjcmVkaXRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInNlcGFcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImlkZWFsXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJiYW5jb250YWN0XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJnaXJvcGF5XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJlcHNcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInNvZm9ydFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwibXliYW5rXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJwMjRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInppbXBsZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIndlY2hhdHBheVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwicGF5dVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYmxpa1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwidHJ1c3RseVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwib3h4b1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwibWF4aW1hXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJib2xldG9cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIm1lcmNhZG9wYWdvXCI6e1wiZWxpZ2libGVcIjpmYWxzZX19LFwicGxhdGZvcm1cIjpcImRlc2t0b3BcIixcInJlbWVtYmVyZWRcIjpbXSxcImV4cGVyaW1lbnRcIjp7XCJlbmFibGVWZW5tb1wiOmZhbHNlfSxcImZsb3dcIjpcInB1cmNoYXNlXCIsXCJyZW1lbWJlclwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwiNTdmMmVkZjc1ZF9tZHU2bWR5Nm1qZ1wiLFwibmFtZVwiOlwicmVtZW1iZXJcIn19LFwiY3VycmVuY3lcIjpcIlVTRFwiLFwiaW50ZW50XCI6XCJhdXRob3JpemVcIixcImNvbW1pdFwiOnRydWUsXCJ2YXVsdFwiOmZhbHNlLFwiZW5hYmxlRnVuZGluZ1wiOltdLFwiZGlzYWJsZUZ1bmRpbmdcIjpbXCJjYXJkXCJdLFwiZGlzYWJsZUNhcmRcIjpbXSxcIm1lcmNoYW50SURcIjpbXSxcImNzcFwiOnt9LFwiZ2V0UGFnZVVybFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwiNDY5OGJiMmM1NV9tZHU2bWR5Nm1qZ1wiLFwibmFtZVwiOlwiZ2V0UGFnZVVybFwifX0sXCJkZWJ1Z1wiOmZhbHNlLFwidGVzdFwiOntcImFjdGlvblwiOlwiY2hlY2tvdXRcIn0sXCJzdXBwb3J0c1BvcHVwc1wiOnRydWUsXCJzdXBwb3J0ZWROYXRpdmVCcm93c2VyXCI6ZmFsc2V9In0sImV4cG9ydHMiOiJ7XCJpbml0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJlMjZhNzE4MWJhX21kdTZtZHk2bWpnXCIsXCJuYW1lXCI6XCJnblwifX0sXCJjbG9zZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwiOWM4MWJmNzE1Nl9tZHU2bWR5Nm1qZ1wiLFwibmFtZVwiOlwiY2xvc2U6Om1lbW9pemVkXCJ9fSxcImNoZWNrQ2xvc2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcIjhhMDVmMjYxOGNfbWR1Nm1keTZtamdcIixcIm5hbWVcIjpcImNoZWNrQ2xvc2VcIn19LFwicmVzaXplXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJlOGQ1NTFlMDg3X21kdTZtZHk2bWpnXCIsXCJuYW1lXCI6XCJ3blwifX0sXCJvbkVycm9yXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCIyYmIxZjExZmYyX21kdTZtZHk2bWpnXCIsXCJuYW1lXCI6XCJrblwifX0sXCJzaG93XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCI5YWNhMzVmZjZlX21kdTZtZHk2bWpnXCIsXCJuYW1lXCI6XCJyblwifX0sXCJoaWRlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJjYTdhN2E3YTQ5X21kdTZtZHk2bWpnXCIsXCJuYW1lXCI6XCJvblwifX19In0=__" title="PayPal" allowpaymentrequest="allowpaymentrequest" scrolling="no" id="jsx-iframe-3396af91bf" class="component-frame visible" style="background-color: transparent; border: none;"></iframe><div id="smart-menu" class="smart-menu"></div><div id="installments-modal" class="installments-modal"></div><iframe name="__detect_close_99df0b0a9c_mdu6mdy6mjg__" style="display: none;"></iframe></div></div><div id="zoid-paypalCredit-button-f17e959efc" class="btn-wide display-none"></div><div id="zoid-paypalPayLater-button-f17e959efc" class="btn-wide display-none"></div><div id="btnNSCC" class="btn-payment display-none"></div></div>

我尝试过使用xpath,但不起作用:

driver.find_element_by_xpath('//*[@id="buttons-container"]/div/div/div')

很可能是由于某些iFrame的原因,我找到了两个iFrame,并尝试使用帧的id切换到它们:

driver.switch_to_frame('jsx-iframe-bc95d24112')

driver.switch_to_frame('__detect_close_0cbbd25e4e_mdu6mty6mzu__')

但这两种方法似乎都不管用:如果有人知道我做错了什么,请告诉我!谢谢


Tags: divnoneidstyledisplaybuttonwidthframe
1条回答
网友
1楼 · 发布于 2024-10-08 20:17:00

这是哪个网站?如果你能提供这个页面的html代码就好了。 我想至少这应该行得通

driver.find_element_by_xpath("//button[text() = 'Pay with PayPal']")

看到HTML页面代码后更新:

driver.find_element_by_id("btnCreditCard").click()

如果它是其他按钮的id,请尝试:

driver.find_element_by_css_selector(".paypal-buttons.paypal-buttons-context-iframe.paypal-buttons-label-pay.paypal-buttons-layout-vertical").click()

别忘了等装完再说

相关问题 更多 >

    热门问题