如何为selenium驱动程序中的特定元素刷新HTML结构



我对selenium相当陌生,但似乎驱动程序最初缓存HTML,因此对HTML的任何后续修改都不会被捕获(除非页面刷新)。

我的HTML看起来像这样:

<div class="questionnaire-form-step questionnaire-form-step-0">
<div class="questionnaire-form-step questionnaire-form-step-1 hide">
<div class="questionnaire-form-step questionnaire-form-step-2 hide">

我有一个按钮带我到下一个div并隐藏前一个。按钮还修改类名,这是我在xpath查询中所依赖的。

   form = driver.find_element_by_xpath("//div[contains(@class, 'questionnaire-form-step') and not(contains(@class, 'hide'))]")

为了调试,我在每一步都输出innerHTML,它总是questionnaire-form-step-0的子元素。

我的假设正确吗?如果没有,如何刷新驱动程序缓存而不刷新整个页面?

是的,你是正确的。当找到元素状态(定位器)时,无法刷新它。您应该在每一步之前重新找到您的元素以获得新的状态。

最新更新