gameking2oo8 发表于 2021-2-18 17:38:50

求助如何定位元素

在网站的登录界面内如何定位元素?

在网页审查里面没有 什么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’)

kogawananari 发表于 2021-2-18 17:38:51

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:}

kogawananari 发表于 2021-2-18 17:51:50

find_elements_by_class_name只能传一个class吧

用driver.find_elements_by_css_selector('.el-input.el-input--medium.el-input--prefix')

gameking2oo8 发表于 2021-2-19 12:19:26

kogawananari 发表于 2021-2-18 17:51
find_elements_by_class_name只能传一个class吧

用driver.find_elements_by_css_selector('.el-input.el ...

感谢你的回答,我改成了你的代码,貌似在输入框内没有显示,不知道哪里错了!

zsy1998 发表于 2021-2-19 13:57:35

应该是想定位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')

kogawananari 发表于 2021-2-19 14:13:13

你要定位的是input啊 看上上楼的子选择器

echowh 发表于 2021-2-19 17:14:00

确保当前iframe没错的话,就可以使用以下定位
driver.find_element_by_xpath("//*[@placeholder='请输入用户名']").send_keys("admin")
driver.find_element_by_xpath("//*[@placeholder='请输入密码']").send_keys("123")

xu240945740 发表于 2021-2-19 21:30:41

小白一个来学习下,谢谢了{:5_105:}
页: [1]
查看完整版本: 求助如何定位元素