鱼C论坛

 找回密码
 立即注册
查看: 1611|回复: 3

[已解决]定位百度登录界面中的注册按键,求助

[复制链接]
发表于 2017-11-2 16:50:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助

        进入百度页面后,点击登录,后再弹出的窗口中,定位点击“立即注册“提示定位失败,是怎么回事呢?

      
  1. from selenium import webdriver
  2. driver = webdriver.Firefox()
  3. driver.get("http://www.baidu.com")
  4. shouye_handle = driver.current_window_handle
  5. driver.find_element_by_xpath("/html/body/div[1]/div[1]/div/div[3]/a[7]").click()
  6. driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_10__form']")
  7. driver.find_element_by_xpath("/html/body/div[4]/div[2]/div[2]/div/div/div/div/div/div[1]/form/p[9]/a[1]")
复制代码
最佳答案
2017-11-2 22:11:47
本帖最后由 堕落之翼 于 2017-11-2 23:31 编辑

import time
from selenium import webdriver

# 定位元素
LOGIN_XPATH = '//*[@id="u1"]/a[7]'
USENAME_XPATH = '//*[@id="TANGRAM__PSP_10__userName"]'
PASSWORD_XPATH = '//*[@id="TANGRAM__PSP_10__password"]'
VERIFY_XPAHT = '//*[@id="TANGRAM__PSP_10__verifyCode"]'
SUBMIT_XPATH = '//*[@id="TANGRAM__PSP_10__submit"]'

def login_baidu():
    """
    百度登录
    :return:
    """
    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    time.sleep(3)
    driver.find_element_by_xpath(LOGIN_XPATH).click()
    time.sleep(1)
    driver.find_element_by_xpath(USENAME_XPATH).clear()
    driver.find_element_by_xpath(USENAME_XPATH).send_keys(youusename)#用户名
    driver.find_element_by_xpath(PASSWORD_XPATH).clear()
    driver.find_element_by_xpath(PASSWORD_XPATH).send_keys(yourpassword)#密码
    driver.find_element_by_xpath(VERIFY_XPAHT).clear()
    str = input("先用手动输入验证码:")#验证码
    driver.find_element_by_xpath(VERIFY_XPAHT).clear()
    driver.find_element_by_xpath(VERIFY_XPAHT).send_keys(str)
    driver.find_element_by_xpath(SUBMIT_XPATH).click()
    time.sleep(3)
    driver.switch_to.default_content()
login_baidu()
16.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-2 17:02:26 | 显示全部楼层
感觉百度之类的反爬太牛逼,建议换个目标
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-2 17:06:32 | 显示全部楼层
BngThea 发表于 2017-11-2 17:02
感觉百度之类的反爬太牛逼,建议换个目标

嗯嗯,谢谢,现在还处于刚刚学习的阶段,书里面的习题都是百度呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-2 22:11:47 | 显示全部楼层    本楼为最佳答案   
本帖最后由 堕落之翼 于 2017-11-2 23:31 编辑

import time
from selenium import webdriver

# 定位元素
LOGIN_XPATH = '//*[@id="u1"]/a[7]'
USENAME_XPATH = '//*[@id="TANGRAM__PSP_10__userName"]'
PASSWORD_XPATH = '//*[@id="TANGRAM__PSP_10__password"]'
VERIFY_XPAHT = '//*[@id="TANGRAM__PSP_10__verifyCode"]'
SUBMIT_XPATH = '//*[@id="TANGRAM__PSP_10__submit"]'

def login_baidu():
    """
    百度登录
    :return:
    """
    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    time.sleep(3)
    driver.find_element_by_xpath(LOGIN_XPATH).click()
    time.sleep(1)
    driver.find_element_by_xpath(USENAME_XPATH).clear()
    driver.find_element_by_xpath(USENAME_XPATH).send_keys(youusename)#用户名
    driver.find_element_by_xpath(PASSWORD_XPATH).clear()
    driver.find_element_by_xpath(PASSWORD_XPATH).send_keys(yourpassword)#密码
    driver.find_element_by_xpath(VERIFY_XPAHT).clear()
    str = input("先用手动输入验证码:")#验证码
    driver.find_element_by_xpath(VERIFY_XPAHT).clear()
    driver.find_element_by_xpath(VERIFY_XPAHT).send_keys(str)
    driver.find_element_by_xpath(SUBMIT_XPATH).click()
    time.sleep(3)
    driver.switch_to.default_content()
login_baidu()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 07:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表