Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么可以';是否单击元素?_Python_Selenium Webdriver - Fatal编程技术网

Python 为什么可以';是否单击元素?

Python 为什么可以';是否单击元素?,python,selenium-webdriver,Python,Selenium Webdriver,我正在尝试创建一个机器人,可以用这些啤酒瓶装满一辆手推车。我真的很想在几个不同的网站上这样做,但由于某些原因,我只能让它打开页面并单击第一个按钮,然后它就不会单击下一个按钮。我试着用ID,名字来识别这个按钮,但它没有点击。我甚至试着睡了3秒钟。我试着看看它是否在一个Iframe中,但我认为不是。我没有主意了。。。。链接是 我正在尝试访问add-to-cart元素,但似乎不起作用 \ 从配置导入键 从selenium导入webdriver def order(k): driver = w

我正在尝试创建一个机器人,可以用这些啤酒瓶装满一辆手推车。我真的很想在几个不同的网站上这样做,但由于某些原因,我只能让它打开页面并单击第一个按钮,然后它就不会单击下一个按钮。我试着用ID,名字来识别这个按钮,但它没有点击。我甚至试着睡了3秒钟。我试着看看它是否在一个Iframe中,但我认为不是。我没有主意了。。。。链接是 我正在尝试访问add-to-cart元素,但似乎不起作用 \
从配置导入键 从selenium导入webdriver

def order(k): 
    driver = webdriver.Chrome(executable_path=r"C:\Users\ezliv\Desktop\ShopBot1\chromedriver_win32\chromedriver.exe")
    driver.get(k['product_url'])
    driver.find_element_by_xpath('//*[@id="thumb-biereblanche"]/div/div[1]/div/div/img').click()
    driver.find_element_by_xpath('//*[@id="yui_3_17_2_1_1606181545139_755"]').click()

\\

您可以尝试以下代码:

driver.get(url_here)

wait = WebDriverWait(driver, 20)

bottle = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="thumb-biereblanche"]/div/div[1]/div/div/img')))
bottle.click()

add_to_cart = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'sqs-add-to-cart-button-inner')))
add_to_cart.click()
进口:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

我喜欢无缘无故地投反对票。很明显,在我问之前我试图找到答案,但我没有选择。如果你给出实际的链接,我会有所帮助。提到你想要的元素,我没有投反对票。投票人应该添加评论。这是等待时间问题吗?声明这些函数/变量是否有助于webdriver的处理,而不是我尝试的方式?它似乎在工作,但我只是想确保我理解我做错了什么。@Typicalusername是的,对,你关于等待的问题。然后,对于
add\u to\u cart
元素,它看起来像一个动态id,因此您无法按id查找。
WebDriverWait
sleep
更有效,这是selenium提供的等待方法。希望这有帮助。