gpt4 book ai didi

java - 我需要帮助创建一个函数,该函数将从 Java (Selenium) 中的 CSV 文件读取(打开新的浏览器选项卡)url

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:53 24 4
gpt4 key购买 nike

我正在尝试自己学习 java 和 selenium,并创建一个机器人来扫描工作/职业页面以查找特定字符串(工作名称,例如 QA、开发人员...)

我正在尝试使用 selenium 创建 JAVA 代码,它将从 CSV 文件读取 URL 链接并打开一个新选项卡。

主要目标是在 CSV 中添加多个 url,并断言/定位指定 url 中的某个字符串,例如:每个 URL 中是否有“职业”链接,则该特定 url 的测试将通过。

  1. 创建了一个 Selenium 项目
  2. 创建了新的 chromeDriver
  3. 创建了由 3 列(ID、公司名称、URL)构建的 CSV - 并将其添加到项目中
import org.openqa.selenium.chrome.ChromeDriver;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class URLSearch {
public static void main(String[] args) {
ChromeDriver driver = new ChromeDriver();
driver.manage().window().maximize();
String fileName = "JobURLList.csv";
File file = new File(fileName); //read from file

try {
Scanner inputStream = new Scanner(file);
while (inputStream.hasNext()) {
String data = inputStream.next();
System.out.println(data);
}
inputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
  1. CSV 中的第一行 - 标题:ID、名称、网址
  2. 从第二行读取网址 - 例如https://careers.google.com/jobs/
  3. 打开浏览器选项卡并开始浏览网址列表(来自 CSV)
  4. 在每个网址中找到一个硬编码字符串(例如“developer”、“qa”..)
  5. 如果找到这样的字符串,请在控制台中写入测试结果为正的 url(在其中一个 url 中找到这样的字符串)。
  6. 如果没有找到这样的字符串,则跳到下一个网址。

最佳答案

要打开新选项卡,请执行以下操作(假设“驱动程序”对象是您的 WebDriver):

  ((JavascriptExecutor)driver).executeScript("window.open('about:blank', '_blank');"); 

Set<String> tab_handles = driver.getWindowHandles();
int number_of_tabs = tab_handles.size();
int new_tab_index = number_of_tabs-1;
driver.switchTo().window(tab_handles.toArray()[new_tab_index].toString());

然后,您可以创建一个函数,该函数采用键/值对列表,以及用于搜索和循环的 URL 和术语。您想为此使用 hashmap,还是类的 ArrayList(id/name/url)?查找文本的代码如下所示(假设您已将“Pass”变量定义为 boolean 值):

   driver.get([var for URL]);
//driver will wait for pageready state, so you may
// not need the webdriver wait used below. Depends
// on if the page populates data after pagereadystate
String xpather = "//*[contains(text(), '" + [string var for text to search for] + "')]";
try
{
wait = new WebDriverWait(driver, 10);
List<WebElement> element = wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath(xpather)));
this.Pass = false;
if (element.size() > 0)
{
this.Pass = true;

}

}
catch (Exception ex)
{
this.Pass = false;
System.out.println ("Exception finding text: " + ex.toString());
}

然后是 if (this.Pass==true or false) 的逻辑..

关于java - 我需要帮助创建一个函数,该函数将从 Java (Selenium) 中的 CSV 文件读取(打开新的浏览器选项卡)url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57018557/

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