2015-01-09 325 views
4

我目前有一个脚本将我登录到一个网站,如果它没有被点击,我想让它点击网站上的一个按钮。下面是按钮的信息:python点击网页上的一个按钮

当按钮已经被激活:

<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并机械化登录并检查几个表单。谢谢!

+0

你”我希望能够像BeautifulSoup一样在HTML中工作:http://www.crummy.com/softwa re/BeautifulSoup/bs4/doc/ – dylrei 2015-01-09 21:15:17

回答

6

当我比较两个标签时,我发现差异是标签。 所以,如果你读它,那么你就大功告成了

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

第1步:找到的XPath - 获取按钮的XPath:为正确打开网页在其Chrome浏览器点击选择检查元素 - 这将打开突出显示的行,并选择复制XPath 的HTML文件,然后右键单击 - 中的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 
print(elem .get_attribute("class")) 
driver.close() 

希望帮助,如果您有疑问,请让我知道

我使用这些链接,文档

Python Selenium: Find object attributes using xpath

http://selenium-python.readthedocs.org/en/latest/locating-elements.html

+0

我尝试过使用硒,但因为它是我登录的页面,所以似乎没有工作。 – rjbogz 2015-01-09 21:59:45

+0

你观察到了什么?你也可以使用硒进行登录。你试过了吗? – Gabriel 2015-01-09 22:28:19

+0

我正在使用'toast_link = driver.find_element_by_link_text('Toast')',但现在我需要通过它们光标。我可以在驱动程序中使用类似于for find_element_by_link_text('Toast')的for循环:'? – rjbogz 2015-01-10 16:29:20