Reputation: 41
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.
Upvotes: 3
Views: 11049
Reputation: 4178
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
Upvotes: 0
Reputation: 1906
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();
Upvotes: -2
Reputation: 17553
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 :)
Upvotes: 1
Reputation: 50819
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.
Upvotes: 0
Reputation: 1767
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.
Upvotes: 0