Добавление текста накладывает к Google Maps

Существует несколько способов сделать скриншот с помощью Selenium WebDriver

Методы Java

Ниже приведены различные методы Java сделать снимок экрана :

  • Использование getScreenshotAs() из TakesScreenshot Интерфейс:

    • Кодовый блок:

      package screenShot;
      
      import java.io.File;
      import java.io.IOException;
      
      import org.apache.commons.io.FileUtils;
      import org.openqa.selenium.OutputType;
      import org.openqa.selenium.TakesScreenshot;
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.firefox.FirefoxDriver;
      import org.openqa.selenium.support.ui.ExpectedConditions;
      import org.openqa.selenium.support.ui.WebDriverWait;
      
      public class Firefox_takesScreenshot {
      
          public static void main(String[] args) throws IOException {
      
              System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
              WebDriver driver =  new FirefoxDriver();
              driver.get("https://login.bws.birst.com/login.html/");
              new WebDriverWait(driver, 20).until(ExpectedConditions.titleContains("Birst"));
              File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
              FileUtils.copyFile(scrFile, new File(".\\Screenshots\\Mads_Cruz_screenshot.png"));
              driver.quit();
          }
      }
      
    • Снимок экрана:

[1146]

Mads_Cruz_screenshot

  • Если на веб-странице включена jquery , вы можете использовать из ] библиотека пазона / ашота :

    • Блок кода:

      package screenShot;
      
      import java.io.File;
      import javax.imageio.ImageIO;
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.firefox.FirefoxDriver;
      import org.openqa.selenium.support.ui.ExpectedConditions;
      import org.openqa.selenium.support.ui.WebDriverWait;
      
      import ru.yandex.qatools.ashot.AShot;
      import ru.yandex.qatools.ashot.Screenshot;
      import ru.yandex.qatools.ashot.shooting.ShootingStrategies;
      
      public class ashot_CompletePage_Firefox {
      
          public static void main(String[] args) throws Exception {
      
              System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
              WebDriver driver =  new FirefoxDriver();
              driver.get("https://jquery.com/");
              new WebDriverWait(driver, 20).until(ExpectedConditions.titleContains("jQuery"));
              Screenshot myScreenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(100)).takeScreenshot(driver);
              ImageIO.write(myScreenshot.getImage(),"PNG",new File("./Screenshots/firefoxScreenshot.png"));
              driver.quit();
          }
      }
      
    • Снимок экрана:

firefoxScreenshot.png

  • Использование из утверждают, что / селен -shutterbug библиотека:

    • Блок кода:

      package screenShot;
      
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.firefox.FirefoxDriver;
      import com.assertthat.selenium_shutterbug.core.Shutterbug;
      import com.assertthat.selenium_shutterbug.utils.web.ScrollStrategy;
      
      public class selenium_shutterbug_fullpage_firefox {
      
          public static void main(String[] args) {
      
              System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
              WebDriver driver =  new FirefoxDriver();
              driver.get("https://www.google.co.in");
              Shutterbug.shootPage(driver, ScrollStrategy.BOTH_DIRECTIONS).save("./Screenshots/");
              driver.quit();
          }
      }
      
    • Снимок экрана:

2019_03_12_16_30_35_787.png [Тысяча сто сорок четыре]

5
задан priestc 3 July 2009 в 05:18
поделиться

2 ответа

Есть несколько сторонних расширений, которые помогут вам легко сделать это. Попробуйте ELabel . Это работает следующим образом:

var label = new ELabel(new GLatLng(44.3,-78.8), "Utopia", "style1");
map.addOverlay(label);
3
ответ дан 14 December 2019 в 08:58
поделиться

Вы можете преобразовать широту и долготу в пиксельное смещение внутри блока карты с помощью метода fromLatLngToDivPixel объекта GMap2.

Чтобы показать в этом блоке div пиксельное смещение, вам нужно прикрепить его к соответствующему div карты. Карта фактически состоит из нескольких слоев div, называемых панелями. Вы можете получить доступ к div для конкретной панели, используя метод GMap2.getPane . Вы можете попробовать вставить свой div на любую из панелей, описанных в перечислении GMapPane .

Итак, чтобы подвести итог:

  • Прикрепите свой абсолютно позиционированный текстовый div (display: none) к соответствующему div панели .
  • Возьмите свои широту и долготу и преобразуйте их в пиксельное смещение div карты.
  • Установите верхний и левый атрибуты вашего абсолютно позиционированного текстового div и отобразите его.
4
ответ дан 14 December 2019 в 08:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: