如何使用pythonselenium在网页上获得各种形式的按钮?

2024-10-02 20:42:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在问之前,我在这里寻找答案,但运气不好。现在,我使用pythonselenium进行web抓取。在选择selenium之前,我检查了mechanize,scrapy,但是我没有用它们执行一些按钮点击,然后我检查了selenium,它似乎有一些缺点。我之所以这么说是因为如果我选择了错误的工具,那么请在为时已晚之前纠正我。在

关于selenium,我的问题是如何使用xpath获取网页上的所有元素。在网页上,我有10张表格,每个表格都有一个按钮。所以我想让网页上的所有表单循环,然后逐个单击按钮。在

例如:

<form id="#F0">
    <input type="button" name="itens" value="Items" class="texField2" onClick="somefunction()"/>
</form>
<form id="#F0">
    <input type="button" name="itens" value="Items" class="texField2" onClick="somefunction()"/>
</form>
<form id="#F1">
    <input type="button" name="itens" value="Items" class="texField2" onClick="somefunction()"/>
</form>
<form id="#F2">
    <input type="button" name="itens" value="Items" class="texField2" onClick="somefunction()"/>
</form>
<form id="#F3">
    <input type="button" name="itens" value="Items" class="texField2" onClick="somefunction()"/>
</form>
<form id="#F4">
    <input type="button" name="itens" value="Items" class="texField2" onClick="somefunction()"/>
</form>

另一件事,我正在做的是,我点击第一个表单上的按钮(它会把我带到另一个页面,我回到历史,点击第二个按钮,然后返回历史,依此类推),它看起来会很慢。有没有更好的方法来做同样的事?在

谢谢你!!在

编辑:

^{pr2}$

Tags: nameformidinputvaluetypeseleniumitems
1条回答
网友
1楼 · 发布于 2024-10-02 20:42:49

您可以通过xpath获取表单按钮,代码如下:

buttons = driver.find_elements_by_xpath(".//form//input[@type='button']")

并通过简单的for循环迭代它们:

^{pr2}$

也可以使用find_elements_by_css_selector函数获取元素:

buttons = driver.find_elements_by_css_selector("input[type='button']")

相关问题 更多 >