用selenium登陆鱼C,登陆按钮的元素怎么找?
用selenium登陆鱼C,登陆按钮的元素怎么找?<button type="submit" class="pn vm" tabindex="904" style="width: 75px;"><em>登录</em></button>
http://ys-i.ys168.com/613967835/ltUJIXp32764H5LK1M8W/20201115184720.png
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()
本帖最后由 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有点慢,不划算。 登陆元素没有id,所以不能用id,要找别的元素 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"}
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.readthedocs.io/locating-elements.html#locating-elements-by-class-name
lgn = driver.find_element_by_css_selector('button.pn') 本帖最后由 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> 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呢? 还有我要点击我的帖子怎么写啊?{:5_109:}
http://ys-j.ys168.com/613967813/ksTLLSp55237K5266PHG/111.png 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/Python3WebSpider/Python3WebSpider/blob/master/7.1-Selenium%E7%9A%84%E4%BD%BF%E7%94%A8.md#%E6%98%BE%E5%BC%8F%E7%AD%89%E5%BE%85 lengyue869 发表于 2020-11-15 20:23
还有我要点击我的帖子怎么写啊?
你先一遍教程吧,自己摸索费时,理论到位,事半功倍。 suchocolate 发表于 2020-11-15 20:26
你先一遍教程吧,自己摸索费时,理论到位,事半功倍。
好的,感谢
'https://fishc.com.cn/forum.php?mod=guide&view=my'
页:
[1]