51Testing软件测试论坛

标题: python+selenium定位网页元素 [打印本页]

作者: 测试积点老人    时间: 2022-6-6 10:18
标题: python+selenium定位网页元素
使用python+selenium,在访问百度贴吧帖子时,如果是直接进入对应贴吧网站,再定位元素点开帖子,没有问题。但是先在百度贴吧首页搜索贴吧,再定位元素点开帖子,元素无法定位到。使用的火狐浏览器
正常运行的代码:
  1.     br = webdriver.Firefox(service=Service(r'D:\seleniumJava\drivers\geckodriver.exe'))
  2.     br.get('https://tieba.baidu.com/f?ie=utf-8&kw=%E6%88%98%E8%88%B0%E4%B8%96%E7%95%8C&fr=search')
  3.     time.sleep(2)
  4.     element='/html/body/div[3]/div/div[2]/div/div/div[1]/div/div/div/div[5]/ul/li[2]/div/div[2]/div/div/a'
  5.     title=br.find_element(By.XPATH, element).text
  6.     print(title)
  7.     br.find_element(By.XPATH,element).click()
复制代码
无法定位到元素的代码:
  1.     br = webdriver.Firefox(service=Service(r'D:\seleniumJava\drivers\geckodriver.exe'))
  2.     br.get('https://tieba.baidu.com/index.html')
  3.     time.sleep(3)
  4.     br.find_element(By.XPATH, '//*[@id="wd1"]').send_keys('战舰世界' + Keys.ENTER)
  5.     time.sleep(1)
  6.     element='/html/body/div[3]/div/div[2]/div/div/div[1]/div/div/div/div[5]/ul/li[2]/div/div[2]/div/div/a'
  7.     title=br.find_element(By.XPATH, element).text
  8.     print(title)
复制代码
报错提示
  1. selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element:
  2. /html/body/div[3]/div/div[2]/div/div/div[1]/div/div/div/div[5]/ul/li[2]/div/div[2]/div/div/a
复制代码
我检查过,窗口句柄没有改变,是同一个窗口,也没有框架存在,而且用selenium IDE操作第二种的话,是能够正常搜索进入对应贴吧并打开第一个非置顶帖的

作者: bellas    时间: 2022-6-7 10:31
换个浏览器试下
作者: kallinr    时间: 2022-6-7 10:38
检查元素是否变化
作者: qqq911    时间: 2022-6-7 10:55
换个定位方式
作者: jingzizx    时间: 2022-6-7 14:26
应该可以啊




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