从浏览器中的网页提取信息的脚本



背景

我有一个网络性能测试工具,每次测试后,它都会在一个新的结果页面中显示所有结果。以下是我查找最终值的工作流程。(这里没有相关的细节,但我正在寻找的html元素可能是

1.转到名为";数据帧";(它有一个以时间戳、发送、接收和百分比为列的表),并在百分比首次降至99.9以下时获得时间戳以下是";数据帧";桌子数据帧片段

2.转到另一个称为";数据吞吐量";(表中有时间戳,吞吐量为列),并在之前找到的时间戳之前获得吞吐量的最大值。

每次测试后,我都必须手动完成,但应该有一些方法可以自动完成。

问题

1.是否可以为每个新的结果页面编写一个脚本(可能是javascript)来自动化我的工作流程?

示例算法

section = webpage.section_with_title("Data frames")
for each row in section
find first my_timestamp with percent < 99.9
done
section2 = webpage.section_with_title("Data Throughput")
for each row in section2
find max row.throughput if row.timestamp < my_timestamp
don

2.一旦我写了脚本,我该如何在网页中执行它?

3.我能以某种方式利用firefox/chrome开发者控制台吗?

注意:我主要使用C、C++和ruby进行开发,在HTML和CSS方面有着非常基本的经验。我几乎没有使用过javascript,但我有一个模糊的想法,浏览器使用它来处理每个页面的内容。

我的想法是通过firefox控制台以某种方式执行脚本,它将为我提供结果。。。这难吗?

编辑:由于我不熟悉网络开发术语,我会换一个词。。。1.我打开结果页面2.我打开firefox/chrome的控制台窗口3.运行我的脚本(不知道用什么语言)。4.我应该在控制台上得到结果。我不想修改结果页面。我只需要将结果显示给我(在控制台或文本文件中)。

是的,使用Javascript可以随心所欲。请查找XMLHttpRequest

这里有一种启动(在Java中)的方法:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class YourClass
{
private WebDriver webDriver = null;
public void open() throws Exception
{
webDriver = new FirefoxDriver();
}
public void close() throws Exception
{
webDriver.quit();
}
public void doStuff() throws Exception
{
WebElement element = webDriver.findElement(By.id(...));
...
// Alternatively, it might be easier to parse the entire
// page-source instead of searching elements in the DOM
String pageSource = webDriver.getPageSource();
...
}
}   

您需要下载以下JAR文件,并将它们添加到项目的类路径中:

  • 硒-java-2.xx.0.jar(目前xx=39)

  • 硒服务器-标准-2.xx.0.jar(当前xx=39)

最新更新