【问题标题】:how to refresh the HTML structure for specific elements in selenium driver?如何刷新 selenium 驱动程序中特定元素的 HTML 结构?
【发布时间】:2015-10-19 13:44:59
【问题描述】:

我对 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 并隐藏前一个。 Button 还修改了类名,这是我在 xpath 查询中所依赖的。

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

为了调试,我在每一步都输出了innerHTML,而且总是问卷-form-step-0的孩子。

我的假设是否正确?如果不是,如何在不刷新整个页面的情况下刷新驱动程序缓存的内容?

【问题讨论】:

    标签: python html selenium xpath


    【解决方案1】:

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

    【讨论】:

    • 我在循环中有 find_element 调用,所以它应该重新查找元素?但是我还是遇到了这个问题。
    • 您应该调用 driver.find_element_by_xpath 并仅在单击按钮之后(而不是之前)将值分配给“表单变量”。然后你就可以得到正确元素的innerHTML了。
    猜你喜欢
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2015-09-19
    • 2020-12-29
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多