Python 等待页面刷新
以下是我试图在Python中使用Selenium Webdriver所做的描述: 我有我的网站,作为输入的具体产品的各种参数,并输出这些参数的产品价格。除了一个参数外,我保持所有参数不变,并在for循环中改变一个特定参数,以查看价格如何根据该特定参数变化。更改参数后,我提交表单,然后隐式使用wait,如下所示:Python 等待页面刷新,python,selenium,webdriver,wait,selenium-webdriver,Python,Selenium,Webdriver,Wait,Selenium Webdriver,以下是我试图在Python中使用Selenium Webdriver所做的描述: 我有我的网站,作为输入的具体产品的各种参数,并输出这些参数的产品价格。除了一个参数外,我保持所有参数不变,并在for循环中改变一个特定参数,以查看价格如何根据该特定参数变化。更改参数后,我提交表单,然后隐式使用wait,如下所示: submit_btn.click() driver.implicitly_wait(10) driver.find_element_by_name("Buy_Product") so
submit_btn.click()
driver.implicitly_wait(10)
driver.find_element_by_name("Buy_Product")
soup=BeautifulSoup(driver.page_source)
当输入第一组参数时,页面是清晰的,它不包含名为“Buy_Product”的Button,因此我使用该行
driver.find_element_by_name("Buy_Product")
确保代码等待按钮出现,这意味着页面现在包含我想要提取的价格。
问题是,第二次通过循环时,当我改变参数并尝试获取新价格时,“Buy_Product”按钮已经存在,因此隐式等待不再起作用,有时需要上一页的源代码才能更新价格。
棘手的是,有时即使对于不同的参数,价格也是相同的,所以我不能仅仅检查价格的可见文本是否发生了变化。
有没有办法不用花时间就解决这个问题。睡眠?这里的情况很棘手……我不确定……如果这有帮助……但是试试看 我的建议是JavaScript注入,我检查页面是否完全加载,然后等待。(c#代码片段)
IWait-Driver\u Wait=new-OpenQA.Selenium.Support.UI.WebDriverWait(Driver,TimeSpan.FromSeconds(30.00));
Driver_Wait.Until(Driver=>((IJavaScriptExecutor)JS_Driver).ExecuteScript(“returndocument.readyState”).Equals(“complete”);
我希望这能有所帮助……最好是:-)如果Anuragh27 Crony的解决方案对您不起作用,您可能还需要考虑等待jquery处于非活动状态。 代码看起来基本相同,但传入此javascript调用:
ExecuteScript("return jQuery.active == 0")
wait\u for\u page\u load()
是否已删除…?您是重新加载整个页面还是使用javascript更新价格?您提交了一个表单,该表单将呈现一个新页面Edu
ExecuteScript("return jQuery.active == 0")