Selenium webdriver Selenium Java—从google搜索中获取url列表,并对特定url文本进行计数匹配
我正在寻找一个逻辑/代码,它将在google.com中输入文本selenium,并从搜索结果中获取前10个URL列表,并从该列表中计算以www.seleniumhq.org开头的URL 到目前为止,我的代码能够显示前10个URL列表:Selenium webdriver Selenium Java—从google搜索中获取url列表,并对特定url文本进行计数匹配,selenium-webdriver,Selenium Webdriver,我正在寻找一个逻辑/代码,它将在google.com中输入文本selenium,并从搜索结果中获取前10个URL列表,并从该列表中计算以www.seleniumhq.org开头的URL 到目前为止,我的代码能够显示前10个URL列表: public static WebDriver driver; public static void main(String[] args) throws InterruptedException { driver = new FirefoxDriver
public static WebDriver driver;
public static void main(String[] args) throws InterruptedException {
driver = new FirefoxDriver();
String url = "https://google.com";
driver.get(url);
WebElement find = driver.findElement(By.id("lst-ib"));
find.sendKeys("Selenium");
Thread.sleep(2000);
WebElement click = driver.findElement(By.name("btnG"));
click.click();
Thread.sleep(2000);
List<WebElement> listings = driver.findElements(By.tagName("div").xpath("//cite[@class='_Rm']"));
listings.size();
System.out.println("Fetched URL's are as follows:-");
for (WebElement loop : listings) {
System.out.println(loop.getText());
String filtering=loop.getText();
boolean filtered=filtering.startsWith("www.seleniumhq.org/");
int size1 = filtering.split("www.seleniumhq.org").length-1;
System.out.println(size1);
}
}
公共静态WebDriver;
公共静态void main(字符串[]args)引发InterruptedException{
驱动程序=新的FirefoxDriver();
字符串url=”https://google.com";
获取(url);
WebElement find=driver.findElement(By.id(“lst-ib”);
find.sendKeys(“Selenium”);
《睡眠》(2000年);
WebElement click=driver.findElement(By.name(“btnG”);
点击。点击();
《睡眠》(2000年);
列表列表=driver.findElements(按.tagName(“div”).xpath(//cite[@class='''u Rm']);
listings.size();
System.out.println(“获取的URL如下:-”);
for(WebElement循环:列表){
System.out.println(loop.getText());
字符串筛选=loop.getText();
布尔过滤=filtering.startsWith(“www.seleniumhq.org/”;
int size1=filtering.split(“www.seleniumhq.org”).length-1;
系统输出打印LN(尺寸1);
}
}
有什么帮助吗?我不确定在这种情况下,您使用的是
split
,您在这一行中尝试了什么。但是,如果您的动机是只获取以“www.seleniumhq.org”开头的URL数量,那么我将您的循环更改为,并且我能够获得正确的计数:
int size1 = 0;
for (WebElement loop : listings) {
System.out.println(loop.getText());
String filtering=loop.getText();
if(filtering.startsWith("www.seleniumhq.org"))
size1++;
}
System.out.println("Total count : "+size1);
在这种情况下,我不确定您在使用split
的那一行中尝试了什么。但是,如果您的动机是只获取以“www.seleniumhq.org”开头的URL数量,那么我将您的循环更改为,并且我能够获得正确的计数:
int size1 = 0;
for (WebElement loop : listings) {
System.out.println(loop.getText());
String filtering=loop.getText();
if(filtering.startsWith("www.seleniumhq.org"))
size1++;
}
System.out.println("Total count : "+size1);
拆分用于将所有文本“www.seleniumhq.org”从获取的url中分离出来,这样也可以按照您建议的方式给出正确的计数,但输出是增量形式的,因为它会在for循环中迭代,即第一次迭代时,它将是0,然后是1,等等。是否有任何方法可以一次性打印计数?如“www.seleniumhq.org的总url地址为:3”?您可以在循环后打印/使用大小。因为我们在这里维护一个列表,为了扫描所有内容,循环是必要的。但一旦循环完成,您将获得计数,我想这就是您所需要的。拆分用于分离所有文本“www.seleniumhq.org”从获取的url中,以您建议的方式给出正确的计数,但输出是增量形式的,因为它在for循环中迭代,即第一次迭代为0,然后为1,等等。是否有任何方法可以一次性打印计数?如“www.seleniumhq.org的总url地址为:3”?您可以在循环后打印/使用大小。因为我们在这里维护一个列表,为了扫描所有内容,循环是必要的。但一旦循环完成,您将获得计数,我想这就是您所需要的。