作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
一旦我将以下商品添加到购物车: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/
我是一名优秀的程序员,十分优秀!