Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 刷新页面后获取Get_属性(“value”)_Python_Python 2.7_Selenium_Selenium Webdriver - Fatal编程技术网

Python 刷新页面后获取Get_属性(“value”)

Python 刷新页面后获取Get_属性(“value”),python,python-2.7,selenium,selenium-webdriver,Python,Python 2.7,Selenium,Selenium Webdriver,目前的情况是: 发送将密钥发送到字段 点击“保存”按钮(点击后刷新页面) 刷新页面后获取get_属性(“值”) 我的代码: def fill_twitter(self): enter_twitter = "http://" + fake.text(max_nb_chars=13) + ".com" twitter_field = self.find_element(*ContractorsLocators.TWITTER) twitte

目前的情况是:

  • 发送
    将密钥发送到字段
  • 点击“保存”按钮(点击后刷新页面)
  • 刷新页面后获取
    get_属性(“值”)
  • 我的代码:

        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
    
    我的错误:

        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\u属性(“值”)

    StaleElementReferenceException:消息:stale元素引用:元素未附加到页面文档

    这是因为元素所在的页面已刷新,或者用户已导航到另一个页面

    正如您所说,当单击“保存”按钮时,页面将刷新。因此,为了避免这种情况,您需要再次找到相同的元素(刷新元素),以获得其值,如下所示:-

    assert self.find_element(*ContractorsLocators.TWITTER).get_attribute("value") == enter_twitter
    
    StaleElementReferenceException:消息:stale元素引用:元素未附加到页面文档

    这是因为元素所在的页面已刷新,或者用户已导航到另一个页面

    正如您所说,当单击“保存”按钮时,页面将刷新。因此,为了避免这种情况,您需要再次找到相同的元素(刷新元素),以获得其值,如下所示:-

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

    当页面刷新时,最好在元素过时之前保存属性值。

    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
    

    当页面刷新时,最好在元素过时之前保存属性值。

    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"));
    

    访问以便更好地理解。

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

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

    访问以获得更好的理解。

    您需要再次查找与
    self.find\u元素(*ContractorsLocators.TWITTER).获取属性(“值”)
    。您需要再次查找与
    self.find\u元素(*ContractorsLocators.TWITTER).获取属性(“值”)相同的元素。。