t.me/atinfo_chat Telegram группа по автоматизации тестирования

WebDriver clean не очищает текстовое поле


(rise) #21

может уже не актуально, но как вариант. Я исользую JavaScript.

public void UpdatePrio(IWebDriver driver, string prio)

        {
            if (prio == null) return;
            const string script = @"txtPrio.SetValue('')";
            JavaScriptLibrary.ExecuteScript(driver, script);
            Prio.SendKeys(prio);
        }
или
 public void UpdatePrio(IWebDriver driver, string prio)
        {
            if (prio == null) return;
            string script = string.Format(@"txtPrio.SetValue('{0}')", prio);
            JavaScriptLibrary.ExecuteScript(driver, script);
        }

(Hohner) #22

Видимо вопрос разрешился.

Просто возникла мысль использовать сочетания клавиш (класс  Robot из AWT). Поместить фокус в нужное поле, нажать ctrl+A, затем нажать backspase.


(Алексей Смиян) #24

у меня проблема возникала в одной из двух используемых для тестов версий браузера (в другой работало). решил способом:

executeJavaScript("arguments[0].value=''"; $(locator));

(Ярослав Бойко) #25

я делаю так:

field.send_keys(Keys.SHIFT + Keys.HOME + Keys.DELETE)


#26
    def set_id_value(self, locator, value=''):
        """Find an element by the specified locator and set value
         :param locator: tuple (method, value, name)
        """
        script = """document.getElementById("{locator}").value='{value}'""". \
            format(locator=locator[1],
                   value=value)
        self.driver.execute_script(script)