如何使用selenium webdriver和python在facebook上发布

时间:2015-03-16 10:18:39

标签: python facebook selenium

我把这段代码写在桌面程序的facebook组中,但它没有用。 我在这个脚本中使用了python和selenium webdriver。

有人可以帮助我吗?

from selenium import webdriver

from selenium.webdriver.support.ui import webDriverWait 

import unittest

class post(unittest.Testcase):

    def setUp(self):
            self.driver = webdriver.Firefox
            self.driver.get("https://www.facebook.com/<grouplink>")

    def test_shar(self):
        driver = self.driver
        grouppost  = "test"
        textid     = "xhpc_message_text"
        buttonid   = ".//*[@id='u_jsonp_25_s']/div/div[5]/div/ul/li[2]/button"
        fblogopath = "(//a[contains(@href, 'logo')])[1]"

        textfiledelemnt = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(textid))
        sharebotton     = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(buttonid)

        textfiledelemnt.clear()
        textfiledelemnt.send_keys(grouppost)
        buttonid.click()
        WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(fblogopath)

    def tearDown(self):
            self.driver.quit()

if __name__ == '__main':
    unittest.main()

2 个答案:

答案 0 :(得分:0)

我建议你不要依赖WebDriver,例如你提到的目的。

使用Graph API,这是两个很好的例子:

1)How do I update FB Status using Python & GraphAPI

2)Posting to Facebook wall

答案 1 :(得分:0)

def postInGroup(driver, group_url, text):
    driver.get(group_url)

    driver.find_element_by_name("xc_message").send_keys(text)
    driver.find_element_by_name("view_post").click()

这适用于Facebook的mbasic版本,即group_url =&#39; https://mbasic.facebook.com/your-group-link&#39;

其余的都一样。