【问题标题】:Selenium web driver fill fields save outputSelenium Web 驱动程序填充字段保存输出
【发布时间】:2026-01-24 07:45:01
【问题描述】:

我对 selenium 完全陌生,很抱歉这个菜鸟问题。但我在谷歌找不到它。 所以,我有一个简单的javacode:

 public static void main(String[] args) throws Exception {
    // The Firefox driver supports javascript 
    WebDriver driver = new FirefoxDriver();

    // Go to the Google Suggest home page
    driver.get("http://tudakozo.telekom.hu/main?xml=main&xsl=main");

    // Enter the query string "Cheese"
    WebElement query = driver.findElement(By.xpath("id('searchByName')/x:input[2]"));

网页顺便说一句:[链接][1] 我想填写左边的方框。为此,我需要一些 selenium 命令:s.fill(这里是 xpath,“填充文本”)

对于 xpath,我使用 firefox 插件并找到 xpath: 我不能发布图片,所以这里有一个链接: http://tinypic.com/view.php?pic=5poglt&s=8#.U_sw-vl_tVY

然后我会在当地获得一些capthca破坏者,但如果oyu有建议我会接受它:) 无论如何,我需要下载图片并手动填充它。比点击 "keresés" 按钮 xpoath: id('searchByName')/x:input[2] 但在第一步我失败了,我无法检查是否是 seleinum (JAVA) 填充了该字段?

** 所以我的主要问题是如何填写这些字段,下载图片 通过硒(JAVA)中的xpath,而不是保存输出**

example : *név*(name) :first field : **Szabó István** and
 *Település*(city)/the field where there is a little pink text/ : **Gyula**

【问题讨论】:

    标签: java selenium xpath


    【解决方案1】:

    你可以像这样使用 Selenium 和 Java 来保存图像,

    string url = "yourimage.png";
    BufferedImage bufImgOne = ImageIO.read(url);
    ImageIO.write(bufImgOne, "png", new File("test.png"));
    

    就填写表格而言,

    driver.findElement(By.id("yourID")).sendKeys("text you need to send");
    

    如果您希望从 xpath 获取图像 src 以下载该 src,请执行此操作,

    WebElement img = driver.findElement(By.id("foo")); // or xpath whichever you prefer
    String src = img.getAttribute("src");
    

    【讨论】:

    • 但我没有链接,也许只有 xpath,一些 id-ed->following 兄弟->idk elemetn-> 并且是链接。我可以通过链接/xpath 下载吗?和同样的 q 我可以使用什么样的 xpath by.xpath("//xpath?")
    • 我刚刚编辑了我的答案,基本上使用 xpath 或通过 id、类等...获取 src 属性,然后您可以使用该属性下载图像。
    • 嗨,我尝试像你说的那样下载一个文件:WebElement img = driver.findElement(By.xpath("//form[@id='searchByName']/table/tbody/tr/td /img")); // 或 xpath,无论你喜欢哪个 String src = img.getAttribute("src"); System.out.println(src); URI uri = 新的 URI(src); URL url = uri.toURL(); BufferedImage bufImgOne = ImageIO.read(url); ImageIO.write(bufImgOne, "jph", new File("test.png"));它得到了链接:captcha.telekom.hu/captcha/… 但它给了我错误:javax.imageio.IIOException: Can't get input stream from...
    【解决方案2】:

    您必须在测试中跳过验证码。要求开发者准备一个参数,在 URL 中传递给应用程序,这样您就可以在不填写验证码的情况下使用应用程序。

    在我的测试中就是这样。

    当然,除非您正在测试验证码功能 :)

    【讨论】: