Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 在Selenium WebDriver中单击按钮后再单击“下一步”按钮?_Python_Selenium_Xpath_Selenium Webdriver - Fatal编程技术网

Python 在Selenium WebDriver中单击按钮后再单击“下一步”按钮?

Python 在Selenium WebDriver中单击按钮后再单击“下一步”按钮?,python,selenium,xpath,selenium-webdriver,Python,Selenium,Xpath,Selenium Webdriver,在我的程序中,它将在浏览器中单击一个按钮,在该页面中,另一个按钮将出现。在该按钮出现后,我的程序将立即运行下一个操作以单击下一个按钮。我当前遇到此错误: ElementNotVisibleException:消息:元素不可见 因此,我假设我正在调用该操作,以便在该按钮出现之前单击“下一步”按钮。我的问题是,我会怎么做,让我的程序等到我可以点击按钮,点击按钮 driver.find_element_by_xpath('//*[@id="add-remove-buttons"]/input').cl

在我的程序中,它将在浏览器中单击一个按钮,在该页面中,另一个按钮将出现。在该按钮出现后,我的程序将立即运行下一个操作以单击下一个按钮。我当前遇到此错误:

ElementNotVisibleException:消息:元素不可见

因此,我假设我正在调用该操作,以便在该按钮出现之前单击“下一步”按钮。我的问题是,我会怎么做,让我的程序等到我可以点击按钮,点击按钮

driver.find_element_by_xpath('//*[@id="add-remove-buttons"]/input').click()
driver.find_element_by_xpath('//*[@id="cart"]/a[2]').click()

这就是我程序底部的代码。我需要能够等到第二个动作可以完成第二个动作。谢谢你的帮助

您正在寻找硒。基本上,您需要单击一个按钮,等待另一个按钮出现,然后单击该按钮。这里回答了一个类似的问题:

您可以这样做(未经测试的代码):


你可能需要好好玩玩这个。我发现每当我使用
wait
时,都需要一段时间才能正确使用它。您可以使用
驱动程序。保存屏幕截图以进行调试。

根据您的问题,我们正在尝试调用
单击()
方法在两个按钮上,因此我们将诱导
明确的twait
具有
预期条件
元素可点击
如下:

firstButton = WebDriverWait(driver, 10).until(EC.element_to_be_clickable(By.XPATH,"//*[@id='add-remove-buttons']/input"))
firstButton.click()
secondButton = WebDriverWait(driver, 10).until(EC.element_to_be_clickable(By.XPATH,"//*[@id='cart']/a[2]"))
secondButton.click()

你在谷歌上搜索了什么?你试过什么?当然,既然您知道您想等待,那么您可以在谷歌上搜索
python seenium wait-for-element
,并尝试使用python编写一些代码,因为答案随时可用?
firstButton = WebDriverWait(driver, 10).until(EC.element_to_be_clickable(By.XPATH,"//*[@id='add-remove-buttons']/input"))
firstButton.click()
secondButton = WebDriverWait(driver, 10).until(EC.element_to_be_clickable(By.XPATH,"//*[@id='cart']/a[2]"))
secondButton.click()