gpt4 book ai didi

python - Selenium python 单击按钮

转载 作者:行者123 更新时间:2023-11-28 01:17:39 25 4
gpt4 key购买 nike

我就是无法点击按钮并转到下一页。到目前为止,我尝试了以下方法

<div class="step__footer">
<button class="step__footer__continue-btn btn " type="submit" name="button">
<span class="btn__content">Continue to payment method</span>
<i class="btn__spinner icon icon--button-spinner"></i>
</button>
<a class="step__footer__previous-link" href="https://checkout.shopify.com/946304/checkouts/1b6e3391268707abb18850300b89e59?step=contact_information">
<svg class="previous-link__icon icon--chevron icon" viewBox="0 0 6.7 11.3" height="11.3" width="6.7" xmlns="http://www.w3.org/2000/svg">
Return to customer information
</a>
</div>

driver = webdriver.Firefox()

driver.implicitly_wait(1) # seconds
driver.find_element_by_css_selector("step__footer__continue-btn btn").click()
driver.implicitly_wait(1) # seconds
driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[2]/div/form/div[2]/button").click()
driver.implicitly_wait(1) # seconds
driver.find_element_by_name("button").click()
driver.implicitly_wait(1) # seconds
elem.send_keys(Keys.RETURN)
driver.implicitly_wait(1) # seconds
driver.find_element_by_css_selector("div.step__footer>button").click()
driver.implicitly_wait(1) # seconds
driver.find_element_by_css_selector("html.multi-step.mac.firefox.desktop.page--no-banner.page--logo-main.page--show.js.flexbox.flexboxlegacy.rgba.multiplebgs.boxshadow.opacity.cssanimations.csstransitions.generatedcontent.svg.inlinesvg.cors.boxsizing.display-table.pointerevents.placeholder.mediaqueries.floating-labels body div.content div.wrap div.main div.main__content div.step form.edit_checkout.animate-floating-labels div.step__footer button.step__footer__continue-btn.btn").click()
driver.implicitly_wait(1) # seconds
driver.find_element_by_link_text("Continue to payment method").click()
driver.implicitly_wait(1) # seconds
driver.find_elements_by_class_name("step__footer__continue-btn btn ").click()
driver.implicitly_wait(1) # seconds
driver.findElementByXpath("//div[@type='submit'][@name='button']").click();

编辑
关键是重新定位元素,重新加载。由于我正在点击一个表单,因此底层代码发生了变化。driver.find_element_by_xpath("//button[@type='submit'][@name='button']").click() 因此找不到元素。使用 driver.get ("%s/%s:%s"% (str(sys.argv[4]), str(sys.argv[2]), str(sys.argv[3]))) 重新加载后它奏效了。

还要查看日志,以防某些格式错误的命令中断流程。

最佳答案

你的选择器有很多错误,试试其中一个

driver.find_element_by_css_selector(".step__footer__continue-btn.btn").click() # for class with css_selector you need '.' in the beginning
driver.find_element_by_class_name("step__footer__continue-btn").click() # by_class_name gets only one class
driver.find_element_by_xpath("//button[@type='submit'][@name='button']").click() # type='submit' and name='button' are <button> tag attributes, not div

您也可以尝试使用显式等待

WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.class_name, "step__footer__continue-btn"))).click()

Edit

有时按钮元素区域比可以接收点击的元素更宽。您可以尝试单击“较低”级别的元素

driver.find_element_by_class_name("btn__content").click() # <span> tag
# or
driver.find_element_by_class_name("btn__spinner").click() # <i> tag

关于python - Selenium python 单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35111853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com