刷新页面后获取属性(“值”)

2024-07-02 12:13:54 发布

您现在位置:Python中文网/ 问答频道 /正文

目前的情况是:

  1. 发送send_keys到字段
  2. 点击“保存”按钮(点击后刷新页面)
  3. 刷新页面后获取get_attribute("value")

我的代码:

    def fill_twitter(self):

        enter_twitter = "http://" + fake.text(max_nb_chars=13) + ".com"

        twitter_field = self.find_element(*ContractorsLocators.TWITTER)
        twitter_field.send_keys(enter_twitter)

        self.find_element(*ContractorsLocators.SAVE_BUTTON).click()
        time.sleep(4)

        assert twitter_field.get_attribute("value") == enter_twitter

我的错误:

StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

如何获得get_attribute("value")?你知道吗


Tags: selfsendfieldgetvalue情况attributetwitter
3条回答

当页面被刷新时,最好在元素得到Stale.之前保存属性的值

def fill_twitter(self):

    enter_twitter = "http://" + fake.text(max_nb_chars=13) + ".com"

    twitter_field = self.find_element(*ContractorsLocators.TWITTER)
    twitter_field.send_keys(enter_twitter)
    value = twitter_field.get_attribute("value")

    self.find_element(*ContractorsLocators.SAVE_BUTTON).click()
    time.sleep(4)

    assert value == enter_twitter

要在页面刷新后检查元素是否可见,请使用显式sleep()函数,并在4秒钟后使用WebDriverWait检查组件是否可见。你知道吗

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "myDynamicElement"));

访问http://selenium-python.readthedocs.io/waits.html#explicit-waits以获得更好的理解。你知道吗

StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

这个页面的most frequent cause是元素所在的页面已经刷新,或者用户已经导航到另一个页面。你知道吗

正如您所说的,当单击save按钮时,页面将被刷新。因此,为了避免这种情况,您需要再次找到相同的元素(refresh element)来获得它们的值,如下所示:

assert self.find_element(*ContractorsLocators.TWITTER).get_attribute("value") == enter_twitter

相关问题 更多 >