javascript - Puppeteer 两个表单点击第二个提交按钮

标签 javascript html puppeteer

我正在使用 puppeteer 来完成一个简单的网络表单,但是该页面有两个表单,每个表单都有一个提交按钮:

<input type="image" img="" src="../graphics/button_search.gif" width="121" height="39" border="0">

所以基本上是以下情况:

<FORM NAME=form1 METHOD=POST ACTION="https://URI1">
    <FONT SIZE=2 FACE="verdana, arial, helvetica">
    <B>Search by E-mail Address</B> (recommended):</FONT>
    <TABLE WIDTH=574 CELLPADDING=3 CELLSPACING=2 BORDER=0>
    <TR>
        <TD WIDTH=50% BGCOLOR="#ffffcc" VALIGN=TOP><FONT SIZE=2 FACE="verdana, arial, helvetica">
        <B>Enter the E-mail Address:</B><BR></FONT> 
        <INPUT Name=vs_email value="" size=25></FONT></TD> 
    </TR>	
    </TABLE>
<TR>
     <TD ALIGN=RIGHT><INPUT type="image" IMG SRC="button_search_green.gif" WIDTH=121 HEIGHT=39 border=0 ></TD> 
</TR>
</FORM>

<FORM NAME=form2 METHOD=POST ACTION="https://URI2">
    <FONT SIZE=2 FACE="verdana, arial, helvetica">
    <B>Search by name</B> (not recommended):</FONT>
    <TABLE WIDTH=574 CELLPADDING=3 CELLSPACING=2 BORDER=0>
    <TR>
        <TD WIDTH=50% BGCOLOR="#ffffcc" VALIGN=TOP><FONT SIZE=2 FACE="verdana, arial, helvetica">
        <B>Enter the name:</B><BR></FONT> 
        <INPUT Name=vs_name value="" size=25></FONT></TD> 
    </TR>	
    </TABLE>
<TR>
     <TD ALIGN=RIGHT><INPUT type="image" IMG SRC="button_search_green.gif" WIDTH=121 HEIGHT=39 border=0 ></TD> 
</TR>
</FORM>

现在我如何确保 puppeteer 操作者点击第二个搜索按钮。 如果我使用以下代码,它将按第一个代码:

    const button = await page.$('input[type="image"]');
    await button.click();

有什么建议我可以对输入 type="image"进行计数并选择第二个吗?

谢谢

马丁

最佳答案

您只需稍微扩展 CSS 选择器即可使其独一无二。您需要做的是使用以下选择器:

const button = await page.$('form[name="form2"] > input[type="image"]');
await button.click();

这应该可以解决问题!

关于javascript - Puppeteer 两个表单点击第二个提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51180760/

相关文章:

php - 如何在浏览器窗口关闭时使 session 过期

html - OOCSS/modular CSS : Fighting link styles,如何解决?

html - 使用选取框标签连续滚动滚动图像

node.js - 使用 Puppeteer 单击页面上的任意位置

promise - Puppeteer 的 chromium 打开时出现错误并停止了 puppeteer 脚本

javascript - 如何使用 node.js Cheerio 一个一个地获取元素

javascript - 将一个元素固定到另一个元素

javascript - jquery中的li元素列表

javascript - 关于分页符,如何让 Puppeteer PDF 生成与 HTML 文档完全匹配?

javascript - 如何使用 Web 组件创建自定义元素?