Search code examples
c#seleniumselenium-webdriverwebdriversendkeys

How to preserve the character sequence sent through SendKeys() method through Selenium and C#


Selenium c# when entering data in a Textbox for My Test Website the the cursor position is set to the Middle and the data entered is like for e.g. 3421 instead of the correct Order of 1234.

Can anyone suggest a good way as to how to handle this?

I have tried to Use pressing the HOME key button but it did not work.


Solution

  • It would be tough to predict the actual issue behind the non perseverance of the sequential order of the character sequence sent through SendKeys() method in absence of the relevant HTML.

    However, in case the AUT (Application Under Test) is JavaScript, Angular or ReactJS based, as per best practices you need to induce WebDriverWait for the desired element to be clickable, then you need to invoke Clear() method and finally invoke SendKeys() method as follows:

    • C#:

      IWebElement textBoxElement = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("xpath_of_HOME_key_button")));
      textBoxElement.Click();
      textBoxElement.Clear();
      textBoxElement.SendKeys("1234");