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点击网页上的按钮的主要内容,如果未能解决你的问题,请参考以下文章