Selenium webdriver 使用JavaScript的seleniumwebdriver
我是SeleniumWebDriver的新手,正在尝试将在线购物网站“amazon.co.uk”自动化。我的目的是导航到网站的一个特定页面,检索卖家名称、各自的URL,并将最终输出写入Excel表格。我可以在控制台中打印上述所有详细信息,但无法将它们写入Excel工作表 下面是我想出的一段代码:Selenium webdriver 使用JavaScript的seleniumwebdriver,selenium-webdriver,Selenium Webdriver,我是SeleniumWebDriver的新手,正在尝试将在线购物网站“amazon.co.uk”自动化。我的目的是导航到网站的一个特定页面,检索卖家名称、各自的URL,并将最终输出写入Excel表格。我可以在控制台中打印上述所有详细信息,但无法将它们写入Excel工作表 下面是我想出的一段代码: package Selenium.src.com.amazon.automation; import java.io.IOException; import java.util.List; import
package Selenium.src.com.amazon.automation;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
public class AmazonTest {
public static void main(String[] args) throws InterruptedException, IOException {
WebDriver driver = new FirefoxDriver();
try {
driver.get("https://www.amazon.co.uk");
Thread.sleep(1000);;
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(150, TimeUnit.SECONDS);
String PageTitle = driver.getTitle();
System.out.println("Page Title is :" + PageTitle );
} catch (Exception e) {
e.printStackTrace();
System.out.println("Driver not reachable");
}
WebElement wb = driver.findElement(By.xpath("//span[text()='Shop by']"));
WebElement wb1 = driver.findElement(By.xpath("//span[text()='Electronics & Computers']"));
Actions act = new Actions(driver);
act.moveToElement(wb).build().perform();
act.moveToElement(wb1).build().perform();
driver.findElement(By.xpath("//span[text()='Headphones']")).click();
Thread.sleep(2000);
// To wait until the next page loads
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("scroll(0, 1000);");
driver.findElement(By.xpath("(//span[text()='See more'])[2]")).click();
List<WebElement> topSellers = driver.findElements(By.xpath("//div[@id='refinementList']//a"));
// int sellersCount = topSellers.size();
System.out.println("The Number Of Top Sellers is :" + topSellers.size());
for(int i=0;i<topSellers.size();i++)
{
//To print the list of Top Sellers and their number of products
System.out.println(topSellers.get(i).getText());
//To print the link of individual seller
System.out.println(topSellers.get(i).getAttribute("href"));
/*To get the page title for individual seller
String PageTitle = driver.getTitle();
System.out.println("Page Tile for this seller is :" +PageTitle);
topSellers.get(i).click();
Thread.sleep(2000);
driver.navigate().back();
WebDriverWait wait = new WebDriverWait(driver,20);
wait.until(ExpectedConditions.titleIs("Amazon.co.uk: see all sellers"));
driver.navigate().refresh();*/
}
driver.close();
}
}
package Selenium.src.com.amazon.automation;
导入java.io.IOException;
导入java.util.List;
导入java.util.concurrent.TimeUnit;
导入org.openqa.selenium.By;
导入org.openqa.selenium.JavascriptExecutor;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.firefox.FirefoxDriver;
导入org.openqa.selenium.interactions.Actions;
公共级亚马逊测试{
公共静态void main(字符串[]args)引发InterruptedException、IOException{
WebDriver=newfirefoxdriver();
试一试{
驱动程序。获取(“https://www.amazon.co.uk");
线程。睡眠(1000);;
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(150,TimeUnit.SECONDS);
字符串PageTitle=driver.getTitle();
System.out.println(“页面标题为:“+PageTitle”);
}捕获(例外e){
e、 printStackTrace();
System.out.println(“无法访问驱动程序”);
}
WebElement wb=driver.findElement(By.xpath(//span[text()='Shop By']);
WebElement wb1=driver.findElement(By.xpath(//span[text()='Electronics&Computers']);
动作动作=新动作(驱动);
act.moveToElement(wb.build().perform();
act.moveToElement(wb1.build().perform();
findElement(By.xpath(“//span[text()='heedphones']”)。单击();
《睡眠》(2000年);
//等待下一页加载
driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);
JavascriptExecutor jse=(JavascriptExecutor)驱动程序;
executeScript(“滚动(0,1000);”;
findElement(By.xpath(“(//span[text()='See more'])[2]”);
List topSellers=driver.findElements(By.xpath(“//div[@id='refinementList']//a”);
//int sellersCount=topSellers.size();
System.out.println(“畅销书的数量是:“+topSellers.size()”);
对于(int i=0;我能请你提供以下更多信息吗:1.你到底想在Excel表格中写入哪些信息?2.网站上的信息是如何描述的?表格格式?下拉列表?模式下拉列表?3.你能提供一些快照吗?4.同时提供HTML DOM。你能系统化你想写入的内容吗ite到Excel?我看不到任何您实际尝试写入Excel的代码。我建议您写入CSV文件,然后在Excel中打开它。这将为您节省大量时间。