Python 板


LINE

使用 Selenium 和 Chrome 的 webdriver 来试着写自动登入论坛的程式 不过有些论坛使用 javascript 弹出登入视窗的方式,不知如何定位 ex1: 伊莉讨论区 登录和注册部分的网页原始码 <span class="pipe">|</span> <a href="member.php?mod=register">注册</a> <span class="pipe">|</span> <a href="javascript:;" onclick="lsSubmit()">登录</a> ex2: 卡提诺论坛 <a href="javascript:;" id="umenu" class="active"><span class="userIcon"></span></a> ----- 我使用的程式码分为三部分: 进入网页, 点击登录, 输入帐号密码 # 点击登录 def loginClick(uri, acc, password): regex = re.compile('user', re.IGNORECASE) condition = False for link in driver.find_elements_by_xpath("//a[@href=\"javascript:;\"]"): if (link.text == '登录' ): link.click() condition = True break elif (regex.search(str(link.find_element((By.XPATH, "..")))) != None): link.click() condition = True break if (condition == False): print('特殊情况, 无法定位点击') print(uri) # 输入帐号密码 def login_username(uri, acc, password): account = driver.find_element_by_xpath("//input[@name='username']") account.clear() account.send_keys(acc) pwd = driver.find_element_by_xpath("//input[@type='password']") pwd.clear() pwd.send_keys(password) driver.find_element_by_xpath("//form[@method='post']").submit() # 进入网页 def execute(): URI = 'http://ck101.com/' # 或是伊莉讨论区 data = driver.get(URI) try: element = WebDriverWait(driver, 20).until( EC.presence_of_element_located((By.XPATH,"//input[@type='password']"))) except TimeoutException: print(URI + ' Load page timeout.') else: try: login_username(URI, 我的帐号, 我的密码) except: loginClick(URI, 我的帐号, 我的密码) login_username(URI, 我的帐号, 我的密码) execute() 执行後会出现 InvalidSelectorException: Invalid locator values passed in 连 '特殊情况, 无法定位点击' 都没有印出 不知道是不是弹出视窗那边出现新的事件没被抓到 ? -- ███ ▂▄▃ ││││ ˋ Mooncat~││││ 「为什麽 ◤ ◥▏*_▂ │││ 为什麽教授这麽靠盃 ▌█ 没天理啊…」 ▅▇*Mooncat~ ˋ█▆◤ _ ▁▄▆▇ by mooncats --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.25.105
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1461590592.A.A8E.html
1F:→ MOONY135: Selenium 用火狐的测试产出PYTHON 2.X版的CODE再修改 04/25 22:54
2F:→ MOONY135: 会比较方便 04/25 22:54
特地装了 Selenium IDE 来测试, 结果跟我的思路一样, 没找到问题 ※ 编辑: obelisk0114 (140.112.25.105), 04/26/2016 18:09:27 伊莉讨论区的部分 elif 那边好像有点问题, 注解掉就成功点击了 但是会跑出另一个错误 Element is not currently interactable and may not be manipulated ※ 编辑: obelisk0114 (140.112.25.105), 04/26/2016 19:41:46
3F:→ s860134: 既然会用 except 去抓例外 你可以插几个去抓哪里错 04/27 07:49
※ 编辑: obelisk0114 (140.112.25.105), 05/02/2016 14:16:39







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP