使用selenium登录Facebook

2024-04-20 11:51:24 发布

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

我知道这不是一个合适的技术问题,但我在使用selenium制作facebook post bot时遇到了问题。 这是我目前为止的代码

    from selenium import webdriver

browser = webdriver.Firefox(executable_path='D:\\soft\\geckodriver-v0.18.0-win64\\geckodriver.exe')
browser.get('http://www.facebook.com')
emailElem = browser.find_element_by_id('email')
passElem = browser.find_element_by_id('pass')
submitIt = browser.find_element_by_id('u_0_r')
email_id = 'xxxxxxxxxxxxxx'
password = 'xxxxxxx'
status = 'Hie all'
emailElem.send_keys(email_id)
passElem.send_keys(password)
submitIt.click()
statusBox = browser.find_element_by_xpath(
   "//*[@id='js_kk']/div[1]/div/div[1]/div[2]/div/div/div/div/div/div[2]/div/div/div/div/span/br")
statusBox.send_keys("Hie")

现在,问题是我的代码无法在Fb页面中找到状态框,我对selenium还很陌生。任何帮助都可以很好。它是用python编写的。在


Tags: 代码divbrowsersendidbyfacebookemail
3条回答

由于Xpath看起来很可能会更改,所以您是否尝试按ID查找元素?在

在驱动程序.FindElement(按.Id(“js_kk”)。发送密钥(状态)

下面是访问^{}、通过一组有效凭证登录并使用xpathcss_selectorStatus Box中输入“Hie”


使用XPATH:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver = webdriver.Firefox(executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
driver.get("https://www.facebook.com/")
driver.find_element_by_xpath("//input[@id='email']").send_keys("email@domain.com")
driver.find_element_by_xpath("//input[@id='pass']").send_keys("password")
driver.find_element_by_xpath("//input[starts-with(@id, 'u_0_')][@value='Log In']").click()
print(driver.title)
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, "//div[starts-with(@id, 'u_0_')]//textarea[@name='xhpc_message']")))
driver.find_element_by_xpath("//div[starts-with(@id, 'u_0_')]//textarea[@name='xhpc_message']").send_keys("Hie")
print("Typed Hie within Facebook Status Box")

使用CSS选择器:

^{pr2}$

这段代码是登录Facebook并在状态中发布“Hello World”文本

public void facebookLogin() throws InterruptedException {

 //1. Set gecko driver path

System.setProperty("webdriver.gecko.driver","C:\\Selenium\\selenium-java-3.0.1\\geckodriver.exe");

WebDriver d= new FirefoxDriver();

  //2. Enter URL 

  d.get("https://www.facebook.com/");

  //3. maximize window

  d.manage().window().maximize();
  Thread.sleep(2000);

   //4. Login Into Fcaebook
  d.findElement(By.id("email")).sendKeys("email");
  d.findElement(By.id("pass")).sendKeys("password");
  d.findElement(By.id("loginbutton")).click();
   Thread.sleep(3000);

    //5. Post "Hello World" into status 

   d.get("https://www.facebook.com/");
   WebElement post= d.findElement(By.xpath("//*[@name='xhpc_message']"));
   post.click();
   post.sendKeys("Hello World");
   d.findElement(By.xpath("(//button[@value='1'])[5]")).click();

   Thread.sleep(2000);

  }

相关问题 更多 >