Чирикать с помощью веб-драйвера Selenium Python Chrome - PullRequest
0 голосов
/ 17 мая 2018

Понятия не имею, почему этот код не работает должным образом.Эта программа предназначена для автоматического поиска соответствующих полей имени пользователя, пароля и ввода некоторых данных для отправки твита.Я правильно выбираю элементы страницы, но не могу ввести в нее данные и получить

NoSuchElement

Исключение.

from selenium import webdriver
import time
import os
import selenium

chromedriver = "mypathto/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)

driver.get('https://twitter.com/login')
username = driver.find_element_by_name("session[username_or_email]")
password= driver.find_element_by_name("session[password]")
username.send_keys("myusername")
password.send_keys("password")



submit = driver.find_element_by_class_name("submit EdgeButton EdgeButton--primary EdgeButtom--medium")
submit.click()

autotw1= driver.find_element_by_id('tweet-box-home-timeline')
autotw1.send_keys("""Just a testing """)
print "Tweet probably sent"

driver.save_screenshot("mybotfunc.png")

1 Ответ

0 голосов
/ 17 мая 2018

Вы можете использовать этот код:

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

driver = webdriver.Chrome(executable_path = r'D:/Automation/chromedriver.exe')
driver.get("https://twitter.com/login")

username = driver.find_element_by_css_selector("input[placeholder='Phone, email or username']")
password= driver.find_element_by_css_selector("input[class='js-password-field']")
username.send_keys("your username")
password.send_keys("your password")

submit = driver.find_element_by_xpath("//button[text()='Log in']")
submit.click()

autotw1 = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, "div[id='tweet-box-home-timeline']")))
autotw1.send_keys("""Just a testing """)  

tweet = driver.find_element_by_xpath("//span[@class='add-tweet-button ']//following-sibling::button[contains(@class,'tweet-action')]")
tweet.click()

Почему ваш код не работает:

есть 3 элемента с этим именем: session[username_or_email]
Несколько с этим: session[password]
и 2 с этим идентификатором: tweet-box-home-timeline

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...