Как щелкнуть ссылку href = "javascript: void (0)" и перейти к открытому окну (Selenium) - PullRequest
0 голосов
/ 27 июня 2018

На странице есть такой элемент:

<a href="javascript:void(0)"> Computer durchsuchen </a>

Если вы нажмете на эту ссылку, откроется окно, в котором вы можете выбрать изображение (путь). Мне удалось нажать на ссылку, и окно открывается. Мой вопрос теперь, как я могу пройти путь и как я могу закрыть его снова?

Это сайт, к которому он относится ...

Это код, который я сделал до сих пор:

    WebDriver driver = new FirefoxDriver();

    driver.get("https://www.shirtee.com/de/designer/?id=1140/");
    WebElement link = driver.findElement(By.cssSelector(".upload-image-drop-zone a"));

    Actions ob = new Actions(driver);
    ob.click(link);
    org.openqa.selenium.interactions.Action action  = ob.build();
    action.perform();

Здесь вы можете увидеть скриншот происходящих процессов ...

1 Ответ

0 голосов
/ 28 июня 2018

Поскольку Selenium не может взаимодействовать с собственными окнами, для него можно использовать класс Robot:

Robot robot = new Robot();
StringSelection selection = new StringSelection("Absolute path of the file");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(selection,null);

robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
robot.setAutoDelay(2000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);

Полный код будет выглядеть так:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;

public class Test  {
  public static void main(String[] args) throws InterruptedException, AWTException {
    final WebDriver driver = new ChromeDriver();

    driver.get("https://www.shirtee.com/de/designer/?id=1140/");

    WebElement link = driver.findElement(By.cssSelector(".upload-image-drop-zone a"));
    link.click();
    Thread.sleep(500); // small pause

    Robot robot = new Robot();
    StringSelection selection = new StringSelection("C:\\full\\path\\to\\file\\image.png");
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(selection,null);

    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyRelease(KeyEvent.VK_V);
    robot.setAutoDelay(2000);
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);

    Thread.sleep(3000); // only to see the result
    driver.quit();
  }
}

Более подробную информацию вы можете найти в документации здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...