求助如何定位元素
在网站的登录界面内如何定位元素?在网页审查里面没有 什么ID 元素 ,CLASS 也是重复的 ,请问需要怎么选择定位
小弟我写的代码如下:
from selenium import webdriver#加载 selenium 库中的 webdriver 模块
driver = webdriver.Chrome(r'./bin/win/chromedriver.exe') #加载谷歌游览器驱动 赋值给变量 driver ,并打开游览器
driver.implicitly_wait(10)
driver.get('http://10.229.17.4:8080/dhmp/index.html')
ele = driver.find_elements_by_class_name('el-input el-input--medium el-input--prefix')
ele.send_keys('admin’) gameking2oo8 发表于 2021-2-19 12:19
感谢你的回答,我改成了你的代码,貌似在输入框内没有显示,不知道哪里错了!
有两种可能
第一种
iframe标签内的标签获取不到需要使用driver.switch_to_frame(iframe_id)来进入
第二种
是动态渲染的 你这个可class应该属于这种情况(因为UI框架的class都是有特色的 阿里蚂蚁是ant-ele-是饿了么的)
试试sleep或者等待
invisibility_of_element_located可见
presence_of_element_located存在
element_to_be_clickable 可点击
之类的
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
ele = WebDriverWait(driver, 15).until(
expected_conditions.presence_of_element_located(
(By.CSS_SELECTOR, '.el-input.el-input--medium.el-input--prefix')))
试试
这代码意思是 15秒内不停的去查询元素 在其可见的时候返回
我也是以前百度学到的{:10_293:} find_elements_by_class_name只能传一个class吧
用driver.find_elements_by_css_selector('.el-input.el-input--medium.el-input--prefix') kogawananari 发表于 2021-2-18 17:51
find_elements_by_class_name只能传一个class吧
用driver.find_elements_by_css_selector('.el-input.el ...
感谢你的回答,我改成了你的代码,貌似在输入框内没有显示,不知道哪里错了! 应该是想定位input,方法很多
比如,用通过父元素classname
driver.find_elements_by_css_selector('.el-input.el-input--medium.el-input--prefix input')
再比如通过input的特有属性
driver.find_elements_by_css_selector('input') 你要定位的是input啊 看上上楼的子选择器 确保当前iframe没错的话,就可以使用以下定位
driver.find_element_by_xpath("//*[@placeholder='请输入用户名']").send_keys("admin")
driver.find_element_by_xpath("//*[@placeholder='请输入密码']").send_keys("123") 小白一个来学习下,谢谢了{:5_105:}
页:
[1]