python点击网页上的按钮

Posted

技术标签:

【中文标题】python点击网页上的按钮【英文标题】:python clicking a button on a webpage 【发布时间】:2015-03-08 06:50:55 【问题描述】:

我目前有一个脚本可以让我登录到一个网站,如果当前没有点击,我想让它点击网站上的按钮。这是按钮的信息:

当按钮已经激活时:

<p class="toast_btn">
    <a class="button grey toast track-click active" data-user-avatar="https://dwebsite.net/picture.jpg" data-checkin-id="123456789" data-href=":feed/toast" data-track="activity_feed" href="#">

当按钮未激活时:

<p class="toast_btn">
    <a class="button grey toast track-click" data-user-avatar="https://dwebsite.net/picture.jpg" data-checkin-id="123456789" data-href=":feed/toast" data-track="activity_feed" href="#">

我只想在class="button grey toast track-click"时点击它

最好的方法是什么?我目前使用 urllib2 和 mechanize 登录并检查一些表单。谢谢!

【问题讨论】:

你会想要像 BeautifulSoup 这样的东西在 html 中工作:crummy.com/software/BeautifulSoup/bs4/doc 【参考方案1】:

当我比较这两个标签时,我发现区别在于 class 标签。 所以如果你能读到它,那么你就完成了

如果你喜欢,你可以用 Selenium 来做

第 1 步:找到 XPath - 获取按钮的 XPath:在 Chrome 中打开页面,点击它并选择 Inspect element - 它将打开 html 文件并右键单击突出显示的行并选择复制 Xpath - 在记事本中复制 XPath

现在您有了 XPath,您可以通过 Python 脚本选择按钮并查询属性

这是一个原型

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.youradress.org")#put here the adress of your page
elem = driver.find_elements_by_xpath("//*[@type='submit']")#put here the content you have put in Notepad, ie the XPath
button = driver.find_element_by_id('buttonID') //Or find button by ID.
print(elem.get_attribute("class"))
driver.close()

希望对你有帮助,如果有问题请告诉我

我将这些链接用于文档

Python Selenium: Find object attributes using xpath

https://selenium-python.readthedocs.io/locating-elements.html

【讨论】:

我尝试使用 selenium,但因为它是我登录的页面,它似乎不起作用。 你观察到了什么?您也可以使用 selenium 登录。你试过了吗? 我正在使用toast_link = driver.find_element_by_link_text('Toast'),但我现在需要光标浏览它们。我可以在类似于for find_element_by_link_text('Toast') in driver: 中放置一个 for 循环吗? Xpath 为您提供了什么?没找到?

以上是关于python点击网页上的按钮的主要内容,如果未能解决你的问题,请参考以下文章

网页中点击下载按钮实现图片下载功能

新手,python怎么模拟网页按钮点击

新手,python怎么模拟网页按钮点击

autoit网页的按钮问题

单击网站上的按钮,然后抓取网页

点击网页一个按钮,原来部分内容及框架不变化,另一部分内容更新一下