鱼C论坛

 找回密码
 立即注册
查看: 2348|回复: 10

[已解决]用selenium登陆鱼C,登陆按钮的元素怎么找?

[复制链接]
发表于 2020-11-15 18:51:00 | 显示全部楼层 |阅读模式

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

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

x
用selenium登陆鱼C,登陆按钮的元素怎么找?

<button type="submit" class="pn vm" tabindex="904" style="width: 75px;"><em>登录</em></button>


                               
登录/注册后可看大图


from selenium import webdriver

url='https://fishc.com.cn/forum-173-1.html'
options=webdriver.ChromeOptions()
options.add_argument('--headless')
driver=webdriver.Chrome()
driver.get(url)
user=driver.find_element_by_id("ls_username")
psw=driver.find_element_by_id("ls_password")
lgn=driver.find_element_by_id()#<=====登陆按钮的元素怎么找?
user.send_keys('xxxx')
psw.send_keys('****')
lgn.click()
# driver.quit()
最佳答案
2020-11-15 20:24:47
1)button.pn是css选择器语句,button代表元素,pn是class的名字,教程:https://www.runoob.com/css/css-id-class.html
2)简单看了一下f12,pn也有被其他元素使用,而登陆这button用了2个class,class_name貌似只能选择一种,所以用class_name估计不行,所以就用xpath吧。
3)不加.pn也能登陆是因为这个button靠前,最先被定为到,如果有多个,就的用css选择器或xpath再继续写语句匹配到。
4)另外,简单完成加载速度比较快,find元素只要有的就能被找到。但有的网站加载慢,没等加载完就可能超时了,推荐用expected:
https://github.com/Python3WebSpi ... F%E7%AD%89%E5%BE%85
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-15 18:59:01 | 显示全部楼层
本帖最后由 suchocolate 于 2020-11-15 19:04 编辑
lgn = driver.find_element_by_xpath('//button[@class="pn vm"]')
或者:
lgn = driver.find_element_by_css_name('pn vm')
另外fc论坛用requests就能登陆,用selenium有点慢,不划算。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-15 19:24:54 | 显示全部楼层
登陆元素没有id,所以不能用id,要找别的元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-15 19:29:15 | 显示全部楼层
suchocolate 发表于 2020-11-15 18:59
或者:

另外fc论坛用requests就能登陆,用selenium有点慢,不划算。

最近学习selenium,所以想试试
下面这个可以
lgn = driver.find_element_by_xpath('//button[@class="pn vm"]')

没有driver.find_element_by_css_name('pn vm')这个方法
用的lgn = driver.find_element_by_css_selector('pn vm')

还是报以下错误:
{NoSuchElementException}Message: no such element: Unable to locate element: {"method":"css selector","selector":"pn vm"}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-15 19:42:03 | 显示全部楼层
lengyue869 发表于 2020-11-15 19:29
最近学习selenium,所以想试试
下面这个可以
lgn = driver.find_element_by_xpath('//button[@class="pn ...


sorry,第二个写错了,应该是
lgn = driver.find_element_by_class_name('pn vm')
确实有css_selector方法,想看用法可以参考selenium官方文档:https://selenium-python.readthed ... ments-by-class-name
lgn = driver.find_element_by_css_selector('button.pn')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-15 19:55:03 | 显示全部楼层
本帖最后由 lengyue869 于 2020-11-15 20:01 编辑
suchocolate 发表于 2020-11-15 19:42
sorry,第二个写错了,应该是
确实有css_selector方法,想看用法可以参考selenium官方文档:https://s ...


lgn = driver.find_element_by_class_name('pn vm')还是不行,运行到这句就直接跳出程序了

lgn = driver.find_element_by_css_selector('button.pn')  button后面的.pn是什么意思啊?

<button type="submit" class="pn vm" tabindex="904" style="width: 75px;"><em>登录</em></button>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-15 20:10:03 | 显示全部楼层
suchocolate 发表于 2020-11-15 19:42
sorry,第二个写错了,应该是
确实有css_selector方法,想看用法可以参考selenium官方文档:https://s ...

lgn = driver.find_element_by_class_name('pn vm') 还是不行,直接跳出了程序;

lgn = driver.find_element_by_css_selector('button.pn'),
button后面的.pn是什么意思啊?不带.pn也可以登录,我看了下这个页面有三个button元素,
css_selector('button')怎么就对应到了登录这个button呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-15 20:23:50 | 显示全部楼层
还有我要点击我的帖子怎么写啊?


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-15 20:24:47 | 显示全部楼层    本楼为最佳答案   
1)button.pn是css选择器语句,button代表元素,pn是class的名字,教程:https://www.runoob.com/css/css-id-class.html
2)简单看了一下f12,pn也有被其他元素使用,而登陆这button用了2个class,class_name貌似只能选择一种,所以用class_name估计不行,所以就用xpath吧。
3)不加.pn也能登陆是因为这个button靠前,最先被定为到,如果有多个,就的用css选择器或xpath再继续写语句匹配到。
4)另外,简单完成加载速度比较快,find元素只要有的就能被找到。但有的网站加载慢,没等加载完就可能超时了,推荐用expected:
https://github.com/Python3WebSpi ... F%E7%AD%89%E5%BE%85
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-15 20:26:57 | 显示全部楼层
lengyue869 发表于 2020-11-15 20:23
还有我要点击我的帖子怎么写啊?

你先一遍教程吧,自己摸索费时,理论到位,事半功倍。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-11-15 20:28:06 | 显示全部楼层
suchocolate 发表于 2020-11-15 20:26
你先一遍教程吧,自己摸索费时,理论到位,事半功倍。

好的,感谢

'https://fishc.com.cn/forum.php?mod=guide&view=my'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 18:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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