Selenium如何定位span元素中的文本

发表于:2022-9-28 09:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小米泥    来源:博客园

  页面结构
  网易登入页
  登入成功后的页面代码
  代码
  '''
  #我们对网页的操作没有报错不代表自动化没有问题
  #此时需要通过页面返回的信息做一个判断,来做人工的定位  
  '''
  from selenium import webdriver
  from selenium.webdriver.common.by import By
  import time
  driver = webdriver.Chrome()
  driver.get("https://www.126.com/")
  time.sleep(4)
  print('Before login............')
  title = driver.title
  print(title)
  nowURL = driver.current_url
  print(nowURL)
  #这是为了先却换到运行模块,不然会定位不到元素
  fname =driver.find_element(By.XPATH,'/html/body/div[2]/div[3]/div[1]/div/div[4]/div[1]/div[1]/iframe')
  driver.switch_to.frame(fname)
  #百度输入框输入内容
  driver.find_element(By.XPATH,"//input[@name='email']").clear()
  driver.find_element(By.XPATH,"//input[@name='email']").send_keys("username")
  driver.find_element(By.NAME,"password").clear()
  driver.find_element(By.NAME,"password").send_keys("password")
  driver.find_element(By.ID,"dologin").click()
  #driver.find_element(By.CSS_SELECTOR,"[data-loginname='loginEmail']")
  time.sleep(5)
  print('After login............')
  title = driver.title
  print(title)
  nowURL = driver.current_url
  print(nowURL)
  #此种方法不能点出text
  # user = driver.find_elements(By.ID,'spnUid')
  #后面的这3种方法都可以  取登入页面后用户账号信息来验证自动化是否正常
  # user =driver.find_element(By.XPATH,'//*[@id="spnUid"]').text
  # user =driver.find_element(By.XPATH,'/html/body/header/div[1]/ul[1]/li[1]/a//*[@id="spnUid"]').text
  user =driver.find_element(By.CSS_SELECTOR,"[id='spnUid']").text
  print(user)
  driver.quit()
  异常
  打印结果找不到text。
  解决办法
  通过疯狂百度,尝试了text,getAttribute通通失败。一位热心网友的回复救了我,他怀疑是元素定位不准确导致的。于是我只定位了第一个元素,.text获取成功。
  user =driver.find_element(By.XPATH,'/html/body/header/div[1]/ul[1]/li[1]/a//*[@id="spnUid"]').text
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号