测试积点老人 发表于 2022-6-6 10:18:47

python+selenium定位网页元素

使用python+selenium,在访问百度贴吧帖子时,如果是直接进入对应贴吧网站,再定位元素点开帖子,没有问题。但是先在百度贴吧首页搜索贴吧,再定位元素点开帖子,元素无法定位到。使用的火狐浏览器
正常运行的代码:
    br = webdriver.Firefox(service=Service(r'D:\seleniumJava\drivers\geckodriver.exe'))
    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')
    time.sleep(2)
    element='/html/body/div/div/div/div/div/div/div/div/div/div/ul/li/div/div/div/div/a'
    title=br.find_element(By.XPATH, element).text
    print(title)
    br.find_element(By.XPATH,element).click()无法定位到元素的代码:
    br = webdriver.Firefox(service=Service(r'D:\seleniumJava\drivers\geckodriver.exe'))
    br.get('https://tieba.baidu.com/index.html')
    time.sleep(3)
    br.find_element(By.XPATH, '//*[@id="wd1"]').send_keys('战舰世界' + Keys.ENTER)
    time.sleep(1)
    element='/html/body/div/div/div/div/div/div/div/div/div/div/ul/li/div/div/div/div/a'
    title=br.find_element(By.XPATH, element).text
    print(title)报错提示
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element:
/html/body/div/div/div/div/div/div/div/div/div/div/ul/li/div/div/div/div/a我检查过,窗口句柄没有改变,是同一个窗口,也没有框架存在,而且用selenium IDE操作第二种的话,是能够正常搜索进入对应贴吧并打开第一个非置顶帖的

bellas 发表于 2022-6-7 10:31:13

换个浏览器试下

kallinr 发表于 2022-6-7 10:38:29

检查元素是否变化

qqq911 发表于 2022-6-7 10:55:04

换个定位方式

jingzizx 发表于 2022-6-7 14:26:19

应该可以啊
页: [1]
查看完整版本: python+selenium定位网页元素