1.前提条件
接Python+Selenium实现自动化登录教程一:Python+Selenium实现自动化登录教程一_疯子佳人傻了的博客-CSDN博客https://blog.csdn.net/ccccc49813645075/article/details/125873048?spm=1001.2014.3001.5502继续完善自动化登录教程
2.元素定位方法介绍
1.Ctrl+Shift+I打开开发者控制面板
2.Ctrl+Shift+C按键出页面选择一个元素进行检查,也可以直接点击下图红色圆圈中的图标
3.登录验证
1.查找到禅道首页的A---admin,用Ctrl+Shift+C查找Admin
点位到
2.按键Ctrl+F出现Xpath文本检索框,输入语法**//div[@class="user-profile-name"],检索user-name,查出 2 of 2,表示Xpath定位到当前user-profile-name 2个元素,查看所有的user-profile-name 发现文本内容对应都是admin,** 所以用此元素定位到的文本内容“admin”=登录元素就可以验证出登录是否正确
验证代码:
#切换ifrme
#driver.switch_to.frame('appIframe-program')
sleep(5)
framm=driver.find_element(By.XPATH,'/html/body/div[2]/div[2]/iframe')
driver.switch_to.frame(framm)
#文本隐形隐藏用texts.get_attribute("innerText")获取,注意text.text直接是获取不到的
sleep(5)
texts=driver.find_element(By.XPATH, '//div[@class="user-profile-name"]')
text=texts.get_attribute("innerText")
print(text)
sleep(5)
if text == 'admin':
print('pass')
else:
print('fail')
注意:
1.以上准确定位到user-profile-name 要先切换到 ifram,如果不切换ifram定位元素会报:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[@class="user-name"]"} (Session info: chrome=103.0.5060.114) 错误
2.selenium 只会与可见元素交互,所以获取隐藏元素的文本为空None.可以修改元素相关属性为可见,user-profile-name 是一个隐藏元素,所以要用get_attribute("innerText")获取文本,若用.text直接获取文本会为空
运行结果:
版权归原作者 疯子佳人傻了 所有, 如有侵权,请联系我们删除。