gpt4 book ai didi

Python:如何使用浏览器碎片检查复选框?

转载 作者:太空狗 更新时间:2023-10-30 00:05:01 26 4
gpt4 key购买 nike

一旦我将以下商品添加到购物车:http://www.supremenewyork.com/shop/accessories/wau85w4km/cxv3ybp1w并转到结帐页面:https://www.supremenewyork.com/checkout , 有一个条款和条件复选框,我试图用 Browser's splinter 勾选,但我无法这样做:

例如尝试了以下但都遇到了错误:

from splinter import Browser

browser = Browser("chrome")
browser.find_by_id('order_terms').click()
#Error: selenium.common.exceptions.WebDriverException: Message: unknown error

browser.check('order[terms]').click()
#Error: selenium.common.exceptions.ElementNotVisibleException: Message: element not visible

browser.find_by_name('order[terms]').click()
#Error: selenium.common.exceptions.ElementNotVisibleException: Message: element not visible

我做错了什么?我该如何使用 Browser splinter 来检查复选框?

预先感谢您,一定会投票/接受答案

最佳答案

需要指出两点:

  • 为避免时间问题,您需要在脚本中有“显式等待” - 在继续下一步操作之前等待元素可见或出现
  • 可以而且应该通过单击包含 input 和其他辅助元素的整个 label 元素来单击此复选框

完整代码如下:

from splinter import Browser

browser = Browser("chrome")
browser.visit("http://www.supremenewyork.com/shop/accessories/wau85w4km/cxv3ybp1w")
browser.wait_time = 10

try:
browser.is_element_visible_by_css("input[name=commit]", 10)
browser.find_by_css("input[name=commit]").first.click()

browser.is_element_visible_by_css("a.checkout", 10)
browser.find_by_css("a.checkout").first.click()

browser.is_element_present_by_css("label.terms", 10)
browser.find_by_css('label.terms').click()
finally:
browser.quit()

这是转到主页的工作代码,导航到滚动条中的第三个产品,将其添加到购物车, checkout 并接受使用条款,time.sleep()最后只是为了让你看到结果:

from splinter import Browser

browser = Browser("chrome")
browser.visit("http://www.supremenewyork.com/shop")
browser.wait_time = 10

try:
# open a product
browser.is_element_visible_by_css("#shop-scroller > li > a", 10)
browser.find_by_css("#shop-scroller > li > a")[2].click()

# add to cart
browser.is_element_visible_by_css("input[name=commit]", 10)
browser.find_by_css("input[name=commit]").first.click()

# checkout
browser.is_element_visible_by_css("a.checkout", 10)
browser.find_by_css("a.checkout").first.click()

# accept terms and conditions
browser.is_element_present_by_css("label.terms", 10)
browser.find_by_css('label.terms').click()

import time
time.sleep(10)
finally:
browser.quit()

关于Python:如何使用浏览器碎片检查复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47582179/

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