2016-12-06 2 views
-2

В селеном C# мы обычно используем driver.Navigate для перехода по ссылкеКак перейти к ссылке, используя IJavaScriptExecutor в selenium C#?

Пример:

driver.Navigate(driver.FindElement(linkLocator).GetAttribute("href")); 

Но я хочу знать, есть ли способ достичь этого с помощью IJavaScriptExecutor?

+0

Почему бы не просто нажмите на ссылку? Зачем тянуть href и перемещаться? – JeffC

+0

Вы не можете полностью изменить свой вопрос. Вы приняли ответ, поэтому новый вопрос не имеет смысла. Вам нужно начать новый вопрос и вернуть его обратно. – JeffC

+0

@JeffC, я использовал это (driver.FindElement (linkLocator) .GetAttribute («href»)), чтобы получить URL-адрес из DOM и использовать URL-адрес для перехода к ссылке. –

ответ

1

Вы можете получить ссылку с помощью селена, и вы можете используйте ExecuteJavaScript от Selenium или ExecuteScript от IJavaScriptExecutor.

Использование селена, построенный в методе ExecuteJavaScript

driver.ExecuteJavaScript<string>("window.location.href = '" + driver.FindElement(linkLocator).GetAttribute("href"); + "';"); 

Использование IJavaScriptExecutor

IJavaScriptExecutor executor = driver as IJavaScriptExecutor; 
executor.ExecuteScript("window.location.href = " + driver.FindElement(linkLocator).GetAttribute("href"); + ";"); 
1

Это, как вы можете сделать IT-

IJavaScriptExecutor jsExecutor = driver as IJavaScriptExecutor; 
jsExecutor.ExecuteScript("window.location.href = 'http://www.google.com';"); 
1

Вам не нужно IJavaScriptExecutor, селен имеет встроенный метод ExecuteJavaScript

string href = driver.FindElement(linkLocator).GetAttribute("href"); 
driver.ExecuteJavaScript<string>("window.location.href = '" + href + "';"); 
Смежные вопросы