python - 使用 Selenium Python chrome webdriver 发布推文
问题描述
我不知道为什么这段代码不能正常工作。该程序用于自动定位用户名、密码的各个字段,并为要发送的推文输入一些数据。我正在正确选择页面的元素,但无法在其中输入数据并获得
无此类元素
例外 。
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")
解决方案
您可以使用此代码:
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 个有这个 id:tweet-box-home-timeline
推荐阅读
- javascript - 在 Web 应用程序中禁用默认滚动到顶部
- git - Git 子模块更新 - HEAD 与 git log 不匹配
- javascript - 如果无效,则将 id 相互匹配,如果不显示错误,则显示数据正确。显示正确和不正确的错误
- matlab - 在子图matlab中的两点之间绘制一条线
- c - 分段错误和 isalpha
- python - Regex Negative Lookbehind 被忽略
- dynamic - Jinja 动态嵌套变量
- django - 鹡鸰个人资料头像进入 ImageRenditionField 序列化程序
- openedge - 4gl中的十进制数字值日期时间格式
- swift - 同时将 nil 分配给多个 UIlabels 和 Uiimageviews