3

I am really fed up from this problem and not finding any solution.

The problem is that I am trying to test a website using test automation in C#. For this I need to sign in, but the sign-in button is not actually a button, it's a span tag with property set 'role=button'.

I am using Selenium with Chrome web driver and using unit extensions to automate the test. The problem is whenever I run the test in Test Explorer the click event is performed, but the page does not navigate to next page, and nothing happens. However, when I set a break point and run the same test through main function it works fine.

I have to set the break point to perform click operation and perform login operation.

I am using a Visual Studio console application. Here is the pic of my web site html tag.

2
  • 3
    Please format your answer to make it more readable and provide some code. Commented Feb 7, 2016 at 20:55
  • the problem does not occur with simple click() function on a simple button Commented Feb 7, 2016 at 20:55

5 Answers 5

1

Try to click by JavascriptExecutor.

JavascriptExecutor is an interface provided by Selenium Webdriver

WebElement element= driver.findElement(By."Your Locator"))
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);

It's an java code you can modify it using reference of below link:-

Execute JavaScript using Selenium WebDriver in C#

Hope it will help you :)

Sign up to request clarification or add additional context in comments.

Comments

0

The problem is most likely the Click function is not loaded at the time you run the test "quick", but it is when you debug. Try load the page. Wait for 1 second. Then getElement and click it. This is normal in pages that add javascript function to elements dynamically.

Comments

0

From what I understood the click is performed before the page is fully loaded. Try using explicit wait and expected conditins

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementToBeClickable(logInButton)).Click();

This will wait up to 10 seconds for the button to be clickable before clicking on it.

Comments

0

If you have Selenium.Support included in your project you can do the following

Driver.ExecuteJavaScript("arguments[0].click();", element);

ExecuteJavaScript is an extension method available in the library

Comments

-2

I fixed this issue by storing element in an IWebElement type variable and then click it.

IWebElement runButton = driverIE.FindElement(By.XPath("//*your XPath"));
runButton.Click();

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.