gpt4 book ai didi

java - Selenium - 复制到剪贴板不适用于嵌入式 pdf

转载 作者:行者123 更新时间:2023-12-02 11:09:11 32 4
gpt4 key购买 nike

我试图通过将内容复制到剪贴板并传输到字符串来验证 pdf 的内容。下面是我的代码

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
for (String string : tabs) {
System.out.println("tab id:: "+string);
}

driver.switchTo().window(tabs.get(1)); //pdf opens in new tab so switching to new tab

pause(5000);

String selectAll = Keys.chord(Keys.CONTROL,Keys.chord("a"));
String copy = Keys.chord(Keys.CONTROL,Keys.chord("c"));
driver.switchTo().frame(driver.findElement(By.xpath("//html/body//div/div/iframe")));
driver.findElement(By.xpath("//*[@id='plugin']")).sendKeys(selectAll); //Select all works on the opened pdf

pause(3000);

driver.findElement(By.xpath("//*[@id='plugin']")).sendKeys(copy);

pause(5000);
Clipboard clipboard2 = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = clipboard2.getContents(null);
String x = (String) contents.getTransferData(DataFlavor.stringFlavor);
System.out.println(x); //getting worng out put here instead of pdf content

选择内容有效,但我得到一些像这样的随机输出

tab id:: CDwindow-FC2070E3D2902357E08E5D6720AF9766
tab id:: CDwindow-D06392BD9261B14C083395D57AE805FA
Clipboard clipboard2 = Toolkit.getDefaultToolkit().getSystemClipboard();

这里是嵌入式 pdf enter image description here 的页面源

不知道我做错了什么。任何人都可以帮忙吗?谢谢。

Chomredriver 2.39 Chrome 版本 66

最佳答案

您可能会得到错误的输出,因为即使切换到 iframe 后,控件也可能不在同一页面上。 在发送复制命令之前,您需要对 PDF 进行单击操作。

     driver.switchTo().frame(driver.findElement(By.xpath("//html/body//div/div/iframe")));

driver.findElement(By.xpath("//*[@id='plugin']")).click();

(或)

WebElement 元素 = driver.findElement(By.xpath("//*[@id='plugin']"));

(JavascriptExecutor) driver.executeScript("element.click()");

element.sendKeys(selectAll);

element.sendKeys(复制);

关于java - Selenium - 复制到剪贴板不适用于嵌入式 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50720051/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com