2013-06-28 4 views
0

Я не могу нажать на скрытую ссылку через Selenium Webdriver.Как нажимать на Спрятанную ссылку через Selenium Webdriver

Я использую следующий код:

WebElement dwnld = driver.findElement((By.xpath("////form[@id='aspnetForm']/div[6]/div[2]/div/table/tbody/tr[3]/td[2]/table/tbody/tr[2]/td/a"))); 
Actions builder = new Actions(driver); 
Action hoverAction = builder.click(dwnld).build(); 
hoverAction.perform(); 
+1

Что происходит? Какие ошибки? С каким исключением? Как правило, в Selenium, если пользователь не может нажать на него, то * ни * может Selenium. Вы должны думать с точки зрения пользователя - как пользователь делает эту ссылку видимой? Если они не могут, у вас больше проблем. – Arran

+0

Исключение: - Исключение: - org.openqa.selenium.ElementNotVisibleException: элемент в настоящее время не виден и поэтому не может взаимодействовать с ним (ПРЕДУПРЕЖДЕНИЕ: сервер не предоставил никакой информации о стеке) Продолжительность или таймаут команды: 14 миллисекунд –

+0

Глядя на xpath, Я смущен тем, как вы смогли найти этот элемент. Потому что вы использовали четыре '/' вместо двух '/'. Элемент все еще искал? – TDHM

ответ

0

Если вы не хотите, чтобы показать ссылку, прежде чем нажимать на него по какой-то причине, вы можете использовать JavaScript, чтобы нажать на нее (см JavaScriptExecutor).

+0

Общее поведение: -Если мы перетаскиваем мышь над этим местом, тогда будет показана ссылка .. и я хочу показать ссылку, а затем хочу щелкнуть по ней. –

+0

Если я правильно понимаю, что вам нужно, вы должны навешивать видимый элемент, содержащий скрытую ссылку, и реагировать на событие зависания. После того, как эта ссылка станет видимой, вы получите возможность щелкнуть по ней. Надеюсь, эта помощь – user2525437

-1
String Block1 = driver.findElement(By.id("element ID")); 

JavascriptExecutor js1=(JavascriptExecutor)driver; 

js1.executeScript("$("+Block1+").css({'display':'block'});"); 
+3

Добро пожаловать в переполнение стека! Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. Также попробуйте не толковать код с пояснительными комментариями, что уменьшает читаемость кода и объяснений! –