答辩超人sbcan 2024-04-14 16:15 采纳率: 100%
浏览 2
已结题

selenium中的XPATH

有没有人知道是哪里错了,眼拙找不出来心累!xpath定位错了吗,我对照了好几遍

img

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-04-14 16:15
    关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    首先,根据你的代码简介,存在以下问题:

    1.在定位元素时,使用了By.XPATH,但是By.XPATH后面需要传入字符串,你在传参时应该使用value=而不是value:

    2.在查找job_name时,没有将其赋值给变量,可以使用job_name = i.find_element(By.XPATH, value='//*[@id="rc-tabs-0-panel-hot"]/div[2]/div[*]/div[1]/a/div[1]/span/div/div/div[1]/span')来解决。

    3.函数声明中的by:str By.ID应该为by:str=None, value:Any=None

    解决方案:

    1.更改代码,将By.XPATH后面的参数替换为value=,例如lists = web.find_elements(By.XPATH, value='//*[@id="rc-tabs-0-panel-hot"]/div[2]/div')

    2.添加变量名job_name =,例如job_name = i.find_element(By.XPATH, value='//*[@id="rc-tabs-0-panel-hot"]/div[2]/div[*]/div[1]/a/div[1]/span/div/div/div[1]/span')

    3.更正find_element函数的声明,修改成def find_element(self, by:str=None, value:Any=None)->WebElement

    下面是修改后的代码:

    lists = web.find_elements(By.XPATH, value='//*[@id="rc-tabs-0-panel-hot"]/div[2]/div')
    print(lists)
    for i in lists:
        job_name = i.find_element(By.XPATH, value='//*[@id="rc-tabs-0-panel-hot"]/div[2]/div[*]/div[1]/a/div[1]/span/div/div/div[1]/span').text
        print(job_name)
    

    希望以上解决方案能够帮助你解决问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月22日
  • 已采纳回答 4月14日
  • 创建了问题 4月14日