2017-02-28 10 views
-4

Facebook post_box Element. Ich kann Element von Xpath nicht findenFacebook post_box Element. Ich kann Element von Xpath nicht finden

Hallo, Ich lerne, um Automatisierungstestskripte in Selenium Webdriver mit Python zu schreiben. Ich werde "Facebook Poster Script" machen. Nach dem Login möchte ich in SendBox klicken und Text senden, aber ich kann es nicht mit Xpath identifizieren. Firebug hilft mir nicht dabei. Danke für Hilfe.

Etwas wie folgt aus:

Nach der Anmeldung

newpost=driver.find_element_by_xpath("i dont know correct xpath") 
newpost.click() 
newpost.send_keys("Hello!") 
newpost.submit() 

Xpath von Firebug nicht

newpost = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div/div[2]/div[2]/div[2]/div/div[3]/div/div/div/div[2]/div[1]/div/div/div/div[2]/div/div[1]/div[1]/div[2]/div/div/div/div/div/div[2]/div/div/div/div") 
+0

Ehrlich gesagt würde ich sie hoffen, dass sie ihre Website so machen würde (Facebook) hat mit WebDriver überhaupt nicht funktioniert, um Bots/Spam zu verhindern. Da ich annehme, dass Sie nicht für Facebook arbeiten, wenn Sie nach Websites suchen, um zu versuchen, versuchen Sie dies: http://www.techbeamers.com/websites-to-practice-selenium-webdriver-online/ Oder wenn Sie sind Erstellen von Bots/Spam .... Ich kann dir nicht wirklich viel Erfolg wünschen. – jibbs

Antwort

0

Richtige Lösung:

newpost = driver.find_element_by_css_selector("[name='xhpc_message']") 
newpost.click() 
newpost.send_keys("Hello!") 
newpost.submit() 

@GVi thx für die Hilfe

0

Zunächst einmal arbeiten, verwenden Sie niemals absolut XPath - es teuer ist, zu halten und sieht einfach schrecklich .

So wie ich es verstehe, müssen Sie auf das Eingabefeld mit dem Platzhalter klicken, was Ihnen in den Sinn kommt. Dann können Sie das Attribut 'data-testid' mit dem Wert 'status-attachment-nomentions-input' verwenden. Wenn Sie wirklich Xpath verwenden müssen, versuchen Sie Folgendes: "//[@data-testid='status-attachment-mentions-input']". Sie können auch CSS-Selektor und finden yo Element wie folgt verwendet werden:

inputField = driver.find_element_by_css_selector("[data-testid='status-attachment-mentions-input']") 
+0

Problem :( File "D: /untitled/AllegroTest.py", Zeile 27 newpost = driver.find_element_by_css_selector ("[Daten TestID =" -Status-attachment-erwähnt-input "]") ^ Syntax : ungültige Syntax Verfahren mit Code-Ausgang beendet 1 Bad Klammern: korrekte Version: driver.find_element_by_css_selector ("[Daten TestID = '-Status-attachment-erwähnt-Eingang']") Der gleiche Fehler wie vorher : Element kann nicht gefunden werden: [data-testid = 'status-attachment-mentions-input'] – PythonLearn

+0

Ich bearbeite eine Antwort es statt doppelt um "status-at tachment-mentions-in put". – vilkg

+0

Derselbe Fehler wie zuvor: Element kann nicht gefunden werden: [data-testid = 'status-attachment-mentions-input'] – PythonLearn