Вам следует подождать, пока элемент не станет видимым.А затем необходимо проверить, находится ли элемент в состоянии включения (кликабельном состоянии) или нет.Только после этого вам нужно выполнить операцию щелчка.
Шаги
1.Создать сеанс браузера Firefox
2.Найдите на страницу согласно вашему требованию
3.Подождать, пока веб-элемент (// * [@ name = 'mobile']) не будет виден [подождать примерно 15 секунд]
[Что такое веб-элемент?Ответ: Независимо от того действия, которое вы собираетесь выполнить с этим элементом.Этот элемент может быть кнопкой, ссылкой, значком, текстовым полем и т. Д.].
4. Теперь проверьте элемент, он находится в состоянии нажатия (состояние включения) или нет
5.Если он находится в кликабельном состоянии (состояние включения), выполните операцию щелчка.
public void test_01_ButtonClick()
{
WebDriver driver = new FirefoxDriver();
driver.navigate().to("www.hlo.com");
//Here will check element is visible or not
waitForElementInDOM(driver, "//*[@name='mobile']", 15);
//Here will check element is enable or not
boolean enable = elementIsEnable(driver, "//*[@name='mobile']");
if(enable)
{
driver.findElement(By.xpath("//*[@name='mobile']")).click();
}
else
{
System.out.println("Element not visible. Please increase your waiting time");
}
}
----------------------------------------------------------------------------
public void waitForElementInDOM(WebDriver driver,String elementIdentifier, long
timeOutInSeconds)
{
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds );
try
{
//this will wait for element to be visible for 15 seconds
wait.until(ExpectedConditions.visibilityOfElementLocated
(By.xpath(elementIdentifier)));
}
catch(NoSuchElementException e)
{
e.printStackTrace();
}
}
-------------------------------------------------------------------------------
public boolean elementIsEnable(WebDriver driver, String elementIdentifier)
{
WebElement element = driver.findElement(By.xpath("elementIdentifier"));
if(element.isEnabled())
{
return true;
}
else
{
return false;
}
}