【发布时间】:2012-12-05 14:00:27
【问题描述】:
以下是我在 Python 中使用 Selenium Webdriver 尝试做的事情的描述: 我有我的网站,它将特定产品的各种参数作为输入,并使用这些参数输出产品的价格。我将除一个参数外的所有参数保持不变,并在 for 循环中改变一个特定参数,以查看价格如何根据该特定参数而变化。一旦我更改了参数,我就提交了表单,然后我使用隐式等待如下:
submit_btn.click()
driver.implicitly_wait(10)
driver.find_element_by_name("Buy_Product")
soup=BeautifulSoup(driver.page_source)
当输入第一组参数时,页面是清晰的,它不包含名称为“Buy_Product”的按钮,所以我正在使用该行
driver.find_element_by_name("Buy_Product")
确保代码等待该按钮出现,这意味着页面现在包含我要提取的价格。 问题是,当我更改参数并尝试获取新价格时,第二次通过循环时,“Buy_Product”按钮已经存在,因此隐式等待不再起作用,有时它会在价格有时间之前使用上一个 page_source要被更新。 棘手的部分是,有时即使对于不同的参数,价格也是相同的,所以我不能只检查价格的可见文本是否发生了变化。 任何想法如何在不使用 time.sleep 的情况下解决这个问题?
【问题讨论】:
-
wait_for_page_load()被删除了吗...? -
您是重新加载整个页面还是使用 javascript 更新价格?
-
您提交了一个呈现新页面 Edu 的表单
标签: python selenium webdriver wait selenium-webdriver