相关疑难解决方法(0)

如何使用Selenium单击网页上的打印按钮

我想点击此页面中的打印按钮:

https://www.google.com/maps/dir/40.4515849,-3.6903752/41.380896,2.1228198/@40.4515849,-3.6903752/am=t/?hl=en

在此输入图像描述

然后保存PDF ...

在此输入图像描述

这是单击按钮的代码:

String url = "https://www.google.com/maps/dir/40.4515849,-3.6903752/41.380896,2.1228198/@40.4515849,-3.6903752/am=t/?hl=en";

WebDriver driver = new HtmlUnitDriver();
driver.get(url);

System.out.println(driver.getTitle());
System.out.println(driver.getCurrentUrl());

WebElement element = driver.findElement(By.xpath("//*[@id=\"text-mode-options-header\"]/div/div/div[2]/div[2]/div/button[1]"));
element.click();

System.out.println("Page title is: " + driver.getTitle());
driver.quit();
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

    Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate a node using //*[@id="text-mode-options-header"]/div/div/div[2]/div[2]/div/button[1]
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.43.1', revision: '5163bce', time: '2014-09-10 16:27:58'
Driver info: driver.version: HtmlUnitDriver
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByXPath(HtmlUnitDriver.java:1057)
    at org.openqa.selenium.By$ByXPath.findElement(By.java:357)
    at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1575)
    at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1)
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:1251)
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:1572)
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:532)
    at com.controlstation.start.Main.main(Main.java:24)
    at …
Run Code Online (Sandbox Code Playgroud)

javascript java navigation selenium google-maps

7
推荐指数
1
解决办法
1万
查看次数

将 Selenium ChromeDriver UserPreferences 设置为另存为 PDF

我正在使用 ChromeDriver 2.33 并使用 kiosk 打印自动单击“打印预览”对话框上的“打印”按钮,但是它将文档发送到打印机而不是 PDF。

我在这个堆栈溢出问题上尝试了解决方案,但无济于事。

这是我正在使用的代码:

ChromeOptions o = new ChromeOptions();
o.AddArgument("--kiosk-printing");
o.AddUserProfilePreference("printing.print_preview_sticky_settings.appState", "{\"version\":2,\"isGcpPromoDismissed\":false,\"selectedDestinationId\":\"Save as PDF\"");
chrome = new ChromeDriver(dir, o);
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何将打印机从实际打印机设置为 PDF?

selenium selenium-chromedriver selenium-webdriver

3
推荐指数
1
解决办法
7299
查看次数

量角器:如何测试window.print()

我正在尝试测试按钮的打印功能,例如:

it('print document', function(){
    element(by.id('print-button')).click();
    expect(window.print());
});
Run Code Online (Sandbox Code Playgroud)

我想测试浏览器打印对话框.这该怎么做?

javascript selenium selenium-webdriver protractor

2
推荐指数
1
解决办法
2599
查看次数