GiaoMan-wei 发表于 2021-2-4 10:08

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()

Test_dada 发表于 2021-2-4 11:58

GiaoMan-wei 发表于 2021-2-4 11:45
大佬~知道这是什么问题么?

你打印当前页的driver.title
看看是不是评论页面那个title:Pico官方社区论坛 - Pico虚拟现实

Test_dada 发表于 2021-2-4 14:33

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)

xutongle 发表于 2021-2-5 01:47

看着像DZQ,直接抓包应该可以

GiaoMan-wei 发表于 2021-2-4 13:58

本帖最后由 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:}


是不是因为我底下查找的内容一直都是我第一个标签的,而不是第二个标签~~??

GiaoMan-wei 发表于 2021-2-4 11:45

Test_dada 发表于 2021-2-4 11:35
试了可以

大佬~知道这是什么问题么?

https://attach.52pojie.cn//forum/202102/04/114502p4ww11ijgjz14irk.png?l

Test_dada 发表于 2021-2-4 11:37

GiaoMan-wei 发表于 2021-2-4 11:35
都是报元素定位不了

我也是醉了,,明明看的到的。。

你页面跳来跳去的话,可能是窗口切换的问题

Test_dada 发表于 2021-2-4 11:35

GiaoMan-wei 发表于 2021-2-4 11:28
这个也是无法定位到。

另外想问大佬一下,,这个相对定位可以跳过中间的div结构是么?

试了可以

GiaoMan-wei 发表于 2021-2-4 11:35

Test_dada 发表于 2021-2-4 11:28
sleep(2)
driver.find_element_by_xpath("//textarea[@autocomplete='off']").click()



都是报元素定位不了:'(weeqw

我也是醉了,,明明看的到的。。

GiaoMan-wei 发表于 2021-2-4 11:28

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
查看完整版本: selenium 自动化操作无法定位元素