selenium 自动化操作无法定位元素
最终目的是想刷评论和签到的~目标评论网址:http://bbs.picovr.com/#/details?id=16294【后期会通过id后面的数字进行】【能解决这个就已经很感谢了{:1_893:}】
目标签到网址:http://bbs.picovr.com/#/signIn【可能需要你注册一下】【这个能解决最好,,】
目前是走到了自动登录账号,有评论权限了。【源代码已放置末尾】
能力有限,没有实现在本页面登录后,绕来绕去去找评论贴再评论,所以是新打开标签页,通过点击头像便可刷新,实现账户同步【我也是卡住之后点击发现的,具体是不是我也不清楚。。】
1、登陆成功后,有第二个评论标签页弹出,问题:无法定位头像元素.click(),并实现网页刷新-账户信息同步过来-就可以评论(了吧?)
https://attach.52pojie.cn//forum/202102/04/100652h2nhzj2ih0ijm998.png?l
2、开始评论,问题:想要定位评论框的元素并实现点击后输入内容,也是一直报【no such element: Unable to locate element:xxx】
https://attach.52pojie.cn//forum/202102/04/100728zbrz9rvr1rhc7ddb.png?l
''' 网页自动化'''
#引入selenium库中的 webdriver 模块
from selenium import webdriver
import time
#打开谷歌浏览器
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://passport.picovr.com/login')
''' 手动模拟登陆'''
driver.find_element_by_id('username').click()
driver.find_element_by_id('username').send_keys('xxx')
driver.find_element_by_id('password').click()
driver.find_element_by_id('password').send_keys('xxx')
driver.find_element_by_xpath('//*[@for="remember"]').click()
driver.find_element_by_class_name("submit").click()
print(driver.get_cookies())
''' 加载第二个页面是否记录'''
time.sleep(2)
js = "window.open('http://bbs.picovr.com/#/details?id=16294')"
driver.execute_script(js)
print(driver.get_cookies())
# time.sleep(20)
# driver.get('http://bbs.picovr.com/#/details?id=16294')
# driver.refresh() # 对当前页面进行刷新
# time.sleep(2)
# driver.refresh() # 对当前页面进行刷新
time.sleep(20)
# driver.find_element_by_xpath('//*[@class="el-dropdown-link get-hand el-dropdown-selfdefine"]').click()
driver.find_element_by_class_name("el-dropdown-link get-hand el-dropdown-selfdefine").click()
GiaoMan-wei 发表于 2021-2-4 11:45
大佬~知道这是什么问题么?
你打印当前页的driver.title
看看是不是评论页面那个title:Pico官方社区论坛 - Pico虚拟现实 GiaoMan-wei 发表于 2021-2-4 13:58
好像还真不是你那个。是【 Pico Neo 开发者版 VR一体机 | Imagine A New Reality】~为什么呀
...
不是的话,你就要获取当前所有的句柄:Handles = driver.window_handles
然后循环for i in Handles ,判断这个i.title = 'Pico官方社区论坛 - Pico虚拟现实'时
跳转 Handles = driver.window_handles
for i in Handles:
if i.title = 'Pico官方社区论坛 - Pico虚拟现实':
driver.switch_to.window(i)
看着像DZQ,直接抓包应该可以 本帖最后由 GiaoMan-wei 于 2021-2-4 14:00 编辑
Test_dada 发表于 2021-2-4 11:58
你打印当前页的driver.title
看看是不是评论页面那个title:Pico官方社区论坛 - Pico虚拟现实
好像还真不是你那个。是【 Pico Neo 开发者版 VR一体机 | Imagine A New Reality】~为什么呀{:1_924:}
是不是因为我底下查找的内容一直都是我第一个标签的,而不是第二个标签~~?? Test_dada 发表于 2021-2-4 11:35
试了可以
大佬~知道这是什么问题么?
https://attach.52pojie.cn//forum/202102/04/114502p4ww11ijgjz14irk.png?l GiaoMan-wei 发表于 2021-2-4 11:35
都是报元素定位不了
我也是醉了,,明明看的到的。。
你页面跳来跳去的话,可能是窗口切换的问题 GiaoMan-wei 发表于 2021-2-4 11:28
这个也是无法定位到。
另外想问大佬一下,,这个相对定位可以跳过中间的div结构是么?
试了可以 Test_dada 发表于 2021-2-4 11:28
sleep(2)
driver.find_element_by_xpath("//textarea[@autocomplete='off']").click()
都是报元素定位不了:'(weeqw
我也是醉了,,明明看的到的。。 Test_dada 发表于 2021-2-4 11:22
driver.find_element_by_xpath("//textarea").click()
评论的
这个也是无法定位到。
另外想问大佬一下,,这个相对定位可以跳过中间的div结构是么?
https://attach.52pojie.cn//forum/202102/04/112826ubbz8ltmbbtqtbwt.png?l
页:
[1]
2