Эта тема теперь исключена из списков. Она не будет отображаться среди других тем ни на каких страницах, а единственным способом прочитать ее будет доступ по ее прямой ссылке.
driver.findElement(By.xpath(".//a[@href=’/share/twitter’]")).sendKeys(Keys.chord(Keys.CONTROL + “t”));
Что ж не так? Код не правильно добавил(
:::: Тема и содержимое вопросов
Создаваемый контент на сайте должен быть информативным. Т.е. это означает, что:
Название темы полностью описывает проблему\вопрос.Выбрана верная категория для темыВ теле темы есть описания, в чем состоит проблема, указание ссылок на данные или сайт или программу, которые вы используете\тестируетекакую ошибку вы получили, как ее вы решали, пример кода, который работает или не работаети ключевой вопрос в чем вы не можете разобраться. ::::
Пока код не будет должным образом отформатирован, тема будет скрыта. В faq по-моему все предельно ясно описано, даже с примерами.
П.С. @russiangunner, вы тоже не подавайте плохой пример новичкам.
Ваш совет помог но не до конца, он открывает новую вкладку, но пустую почему то?
Посмотрите)))
Пробуем еще, пока не научимся.
ну что не так( Так моя тема вида или нет(
Эта тема включена в списки и будет отображаться среди других тем.
Эта тема теперь исключена из списков. Она не будет отображаться среди других тем ни на каких страницах, а единственным способом прочитать ее будет доступ по ее прямой ссылке.
Я вначале возмутился беспределом @ArtOfLife и попытался вернуть тему, а потом присмотрелся — он прав.
После переписки с @Wafe все таки удалось отформатировать код, и тут я понял, что проблема в другом
Совет: на жалейте строк кода на переменные:
WebElement lnkTwitter = driver.findElement(By.xpath(".//a[@href='/share/twitter']");
((JavascriptExecutor)driver).executeScript("this.target='_blank';", lnkTwitter));
sleepALoop(10);
Теперь стало намного яснее, что вы передаете вебэлемент как параметр.
Чтобы обратится к переданному параметру нужно использовать в JavaScript массив arguments
. В нашем случае, это arguments[0]
;
Т.е:
WebElement lnkTwitter = driver.findElement(By.xpath(".//a[@href='/share/twitter']");
((JavascriptExecutor)driver).executeScript("arguments[0].target='_blank';", lnkTwitter));
sleepALoop(10);
Ну и предпоследнее, похоже на то что вы не кликаете по элементу.
И последнее: разные браузеры могут по разному реагировать на синтетические события. Поэтому может быть так, что открыть окно в новой вкладке у вас этим способом не получится просто из за настроек полиси безопасности браузера или настроек.
Смотрите также:
Эта тема включена в списки и будет отображаться среди других тем.
Спасибо Вам! Буду пробывать, отпишусь что получилось и как обьязательно)
Я думаю, что вам всё равно, откроется ссылка в новой вкладке или в новом окне. Технически разницы никакой нет, с точки зрения теста всё работает одинаково в обоих случаях.
Добрый вечер, решение было найдено, и было отмечено:)
И тут у меня возник слудующий вопрос:
Есть тажа ссылка с атрибутом(“target=”_blank"),
как показано на скриншоте - : http://screencloud.net/v/mIzi )
По умолчание она сама открывается в новой вкладке.
А как заставить ее открыть в текущем окне и сделать возрать назад?
Сорри не там поставил( Вопрос актуальный!
import java.awt.*;
import java.awt.event.KeyEvent;
Robot r = new Robot();
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_T);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_T);
На данный момент реализовал вот так :
String newWindowHandler = driver.getWindowHandle();
linkTwitter.click();
for (String nahdle : driver.getWindowHandles()){
driver.switchTo().window(nahdle);
}
sleepALoop(2);
assertTrue(driver.getCurrentUrl().contains(e));
driver.close();
driver.switchTo().window(newWindowHandler);
sleepALoop(2);
Итак получается у меня три метода для проверки шаринга (Facebook, Google+, Twitter).
Тест отрабатывается, ошибок нет.
Спасибо всем кто уделил внимание)