51Testing软件测试论坛

标题: 老司机带你如何定位span元素中的文本--Selenium [打印本页]

作者: lsekfe    时间: 2022-9-28 13:44
标题: 老司机带你如何定位span元素中的文本--Selenium
页面结构
  网易登入页
[attach]143403[/attach]
登入成功后的页面代码
[attach]143404[/attach]
代码
  1. <font size="3"> '''

  2.   #我们对网页的操作没有报错不代表自动化没有问题

  3.   #此时需要通过页面返回的信息做一个判断,来做人工的定位  

  4.   '''

  5.   from selenium import webdriver

  6.   from selenium.webdriver.common.by import By

  7.   import time

  8.   driver = webdriver.Chrome()

  9.   driver.get("https://www.126.com/")

  10.   time.sleep(4)

  11.   print('Before login............')

  12.   title = driver.title

  13.   print(title)

  14.   nowURL = driver.current_url

  15.   print(nowURL)

  16.   #这是为了先却换到运行模块,不然会定位不到元素

  17.   fname =driver.find_element(By.XPATH,'/html/body/div[2]/div[3]/div[1]/div/div[4]/div[1]/div[1]/iframe')

  18.   driver.switch_to.frame(fname)

  19.   #百度输入框输入内容

  20.   driver.find_element(By.XPATH,"//input[@name='email']").clear()

  21.   driver.find_element(By.XPATH,"//input[@name='email']").send_keys("username")

  22.   driver.find_element(By.NAME,"password").clear()

  23.   driver.find_element(By.NAME,"password").send_keys("password")

  24.   driver.find_element(By.ID,"dologin").click()

  25.   #driver.find_element(By.CSS_SELECTOR,"[data-loginname='loginEmail']")

  26.   time.sleep(5)

  27.   print('After login............')

  28.   title = driver.title

  29.   print(title)

  30.   nowURL = driver.current_url

  31.   print(nowURL)

  32.   #此种方法不能点出text

  33.   # user = driver.find_elements(By.ID,'spnUid')

  34.   #后面的这3种方法都可以  取登入页面后用户账号信息来验证自动化是否正常

  35.   # user =driver.find_element(By.XPATH,'//*[@id="spnUid"]').text

  36.   # user =driver.find_element(By.XPATH,'/html/body/header/div[1]/ul[1]/li[1]/a//*[@id="spnUid"]').text

  37.   user =driver.find_element(By.CSS_SELECTOR,"[id='spnUid']").text

  38.   print(user)

  39.   driver.quit()</font>
复制代码
异常
  打印结果找不到text。
  解决办法
  通过疯狂百度,尝试了text,getAttribute通通失败。一位热心网友的回复救了我,他怀疑是元素定位不准确导致的。于是我只定位了第一个元素,.text获取成功。

  1. <font size="3">
  2.   user =driver.find_element(By.XPATH,'/html/body/header/div[1]/ul[1]/li[1]/a//*[@id="spnUid"]').text</font>
复制代码
[attach]143405[/attach]








欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2