Java 如何使用SeleniumWebDriver访问pdf链接
以下代码的功能如下:Java 如何使用SeleniumWebDriver访问pdf链接,java,selenium,Java,Selenium,以下代码的功能如下: 要求用户输入图书的名称 它打开了Firefox 浏览器 加载google.com 使用输入书名 sendkeys() 点击搜索按钮 它显示所有链接 下面是代码 import java.util.*; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.o
import java.util.*;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class downloaddemo {
String text ;
String text1 ;
WebDriver driver;
void getTextU()
{
Scanner s = new Scanner(System.in);
System.out.println("Enter Text");
text = s.nextLine();
text1 = text + " pdf " ;
System.out.println(" Searching for " + text1 + " .......... ");
}
public void invokeBrowser()
{
System.setProperty("webdriver.gecko.driver","C:\\geckodriver-v0.19.0-win64\\geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS );
driver.get("https://www.google.com");
search();
}
public void search()
{
driver.findElement(By.xpath("//input[@id='lst-ib' and @class='gsfi']")).click();
System.out.println(text1);
driver.findElement(By.id("lst-ib")).sendKeys(text1);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver.findElement(By.xpath("//input[@value='Google Search' or @aria-label='Google Search']")).click();
//driver.findElement(By.xpath("//span[@class='_ogd b w xsm'] and //a[@href='']")).click();
/*List<WebElement> list = driver.findElements(By.xpath("//span[@class='_ogd b w xsm']//a[@href]"));
for (WebElement e : list) {
String link = e.getAttribute("href");
System.out.println(e.getTagName() + "=" + link + " , " + e.getText());
}*/
}
public static void main(String[] args) {
// TODO Auto-generated method stub
downloaddemo d = new downloaddemo();
d.getTextU();
d.invokeBrowser();
}
}
import java.util.*;
导入java.util.concurrent.TimeUnit;
导入org.openqa.selenium.By;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.firefox.FirefoxDriver;
公共类下载演示{
字符串文本;
字符串text1;
网络驱动程序;
void getTextU()
{
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入文本”);
text=s.nextLine();
text1=text+“pdf”;
System.out.println(“搜索“+text1+”);
}
public void invokeBrowser()
{
System.setProperty(“webdriver.gecko.driver”,“C:\\geckodriver-v0.19.0-win64\\geckodriver.exe”);
驱动程序=新的FirefoxDriver();
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
driver.manage().timeout().pageLoadTimeout(30,TimeUnit.SECONDS);
驱动程序。获取(“https://www.google.com");
搜索();
}
公开无效搜索()
{
findElement(By.xpath(//input[@id='lst-ib'和@class='gsfi'])。单击();
System.out.println(text1);
driver.findElement(By.id(“lst ib”)).sendKeys(text1);
试一试{
《睡眠》(2000年);
}捕捉(中断异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
findElement(By.xpath(//input[@value='Google Search'或@aria label='Google Search'])。单击();
//driver.findElement(By.xpath(//span[@class=''u ogd b w xsm']和//a[@href=''))。单击();
/*List List=driver.findelelements(By.xpath(“//span[@class='''u ogd b w xsm']//a[@href]”);
for(WebElement e:list){
字符串链接=e.getAttribute(“href”);
System.out.println(e.getTagName()+“=”+link+”,“+e.getText());
}*/
}
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
downloaddemo d=新的downloaddemo();
d、 getTextU();
d、 invokeBrowser();
}
}
其输出如下所示:
- [pdf]Java完整参考资料,第七版
- [pdf]Java- 甲骨文
- [pdf]java-Ramesh R.Manza博士李>
或
我怎样才能下载所有的pdf 使用此代码,我获取所有pdf链接
public class testing_solution
{
public static WebDriver driver;
public static void main(String[] args) throws InterruptedException {
driver =new ChromeDriver();
driver.get("https://www.google.com/search?q=selenium+pdf&rlz=1C1CHZL_enBD739BD739&oq=selenium+pdf&aqs=chrome..69i57j69i60l2j0l3.3815j0j7&sourceid=chrome&ie=UTF-8");
List<WebElement> list = driver.findElements(By.xpath(".//*[@class='f kv _SWb']/cite"));
for (WebElement e : list) {
if(e.getText().endsWith(".pdf")){
System.out.println(e.getText());
}
}}
公共类测试\u解决方案
{
公共静态WebDriver;
公共静态void main(字符串[]args)引发InterruptedException{
驱动程序=新的ChromeDriver();
驱动程序。获取(“https://www.google.com/search?q=selenium+pdf&rlz=1C1CHZL_enBD739BD739&oq=selenium+pdf&aqs=chrome..69i57j69i60l2j0l3.3815j0j7&sourceid=chrome&ie=UTF-8”);
List List=driver.findElements(By.xpath(“./*[@class='f kv_SWb']/cite”);
for(WebElement e:list){
if(e.getText().endsWith(“.pdf”)){
System.out.println(e.getText());
}
}}
首先,我采取的链接,然后检查链接是否是pdf格式,然后我打印所有的链接
我得到如下输出
希望它能帮助您……而不是查找
href
属性搜索数据href
属性,这是pdf的实际链接。我了解如何获取链接,但如何下载所有pdf