当前位置: 首页 > 知识库问答 >
问题:

微博登录selenium in python?

乐正明辉
2023-03-14

我在selenium做微博登录,但是我不能处理窗口弹出。这是我的代码。什么是问题?

from selenium import webdriver

username = 'your id'
password = 'your password'

driver = webdriver.Firefox()
driver.get("http://overseas.weibo.com/")
driver.implicitly_wait(10)

handles = driver.window_handles


driver.find_elements_by_link_text('登入微博')[0].click()
driver.implicitly_wait(10)

driver.switch_to_alert()
driver.find_element_by_name('memberid').send_keys(username)
driver.find_element_by_name('passwd').send_keys(password)
driver.find_elements_by_link_text('登入')[0].click()

回溯(最近一次调用):驱动程序第35行的文件“D:/python34/weibo_login.py”。通过名称(“成员ID”)查找元素。发送第362行“C:\Python34\lib\site packages\selenium\webdriver\remote\webdriver.py”的密钥(用户名)文件,按名称查找元素返回self。查找元素(by=by.NAME,value=NAME)文件“C:\Python34\lib\site packages\selenium\webdriver\remote\webdriver.py”,第744行,在执行self中的查找元素{'using':by,'value':value})['value']文件“C:\Python34\lib\site packages\selenium\webdriver\remote\webdriver.py”,第233行。错误处理程序。在check\u response raise exception\u class(message,screen,stacktrace)Seleniu中的第194行检查响应(response)文件“C:\Python34\lib\site packages\selenium\webdriver\remote\errorhandler.py”。常见的例外情况。NoSuchElementException:消息:无法在FirefoxDriver上定位元素:{“方法”:“名称”,“选择器”:“memberid”}Stacktrace:。原型findElementInternal_(file:///C:/Users/hena/AppData/Local/Temp/tmpwk788t0k/extensions/fxdriver@谷歌代码。com/组件/驱动程序组件。fxdriver上的js:10770)。计时器。原型设置超时/

共有1个答案

冯嘉珍
2023-03-14

实际打开的登录表单iframe中。这不是警报。在查找元素和sendKeys之前,您需要首先切换这个特定的iframe,如下所示:-

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

username = 'your id'
password = 'your password'

driver = webdriver.Firefox()
driver.get("http://overseas.weibo.com/")

wait = WebDriverWait(browser, 10)

link = wait.until(EC.visibility_of_element_located((By.LINK_TEXT, "登入微博")))
link.click()   

frame = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "cboxIframe")))
driver.switch_to_frame(frame)

user = wait.until(EC.visibility_of_element_located((By.ID, "memberid")))
user.send_keys(username)

passwd = wait.until(EC.visibility_of_element_located((By.ID, "passwd")))
passwd.send_keys(password)

button = wait.until(EC.visibility_of_element_located((By.ID, "login")))
button.click()

希望能有帮助……:)

 类似资料:
  • 1. 申请应用 1.注册微博开放平台账号 https://open.weibo.com/apps。如果已有则忽略该步骤,直接进入第二步。 2.创建应用 通过顶部菜单栏的【微连接-网站接入】或者直接点击【网站接入 (opens new window)】进入网站接入界面 点击【立即接入】按钮进入创建应用页面,填入应用名称,应用分类选择默认的“网页应用”即可 创建完成后会自动跳转到应用信息页面,如下图,

  • 本文向大家介绍php新浪微博登录接口用法实例,包括了php新浪微博登录接口用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php新浪微博登录接口用法。分享给大家供大家参考。具体分析如下: 在做微博登陆之前是需要申请到APP KEY 和App Secret,这个的申请方式请去 open.weibo.com 申请相关内容. 在官网也有相关的开发文档http://open.weibo.c

  • 微信登录事实上有3种, PC网页,公众号,App. PC网页登录 -- 服务器生成URL,浏览器访问,出二维码,微信客户端扫码,确认登录,带token回调到服务器指定地址 公众号登录 -- 服务器生成URL,微信客户端自动访问,用户确认登录(或自动登录),带token回调到服务器指定地址 App登录 -- 第三方app跳转到微信客户端,用户确认登录,附带token跳转回原来的app,第三方app使

  • 根据 jsCode 获取用户 session 信息 API: $app->auth->session(string $code);

  • 本文向大家介绍qq登录,新浪微博登录接口申请过程中遇到的问题,包括了qq登录,新浪微博登录接口申请过程中遇到的问题的使用技巧和注意事项,需要的朋友参考一下 1,qq登录接口申请 申请地址是:http://connect.opensns.qq.com/,登录进去后,点击右上方的登录。然后填写信息就行了。 我遇到的问题是在域名审核时,域名审核就是不通过,没办法我就发邮件给qq互联的客服,邮件地址是co

  • 类属性 $display 授权页面的终端类型,取值见微博文档。http://open.weibo.com/wiki/Oauth2/authorize $forcelogin 是否强制用户重新登录,true:是,false:否。默认false。 $language 授权页语言,缺省为中文简体版,en为英文版。 $screenName 获取用户资料时传的参数,可空