代码改变世界

Python selenium PO By.XPATH定位元素报错

  清风软件测试开发  阅读(4487)  评论(0编辑  收藏  举报

Python selenium PO  By.XPATH定位元素报错

如下代码经常报错:

复制代码
    # 首页的“新建投放计划”按钮
    new_ads_plan = (By.XPATH, "//*[text()='百度新闻']/..")


    print(type(self.new_ads_plan))
    self.driver.find_element(self.new_ads_plan).click()

运行经常报错:
selenium.common.exceptions.WebDriverException: Message: invalid argument: 'using' must be a string
复制代码

 

解决办法:

self.driver.find_element(*self.new_ads_plan).click()

在参数里面的元素定位 self 前加一个星号 *

 

=============================================================================================================================================================================================================================

 

 

复制代码
    new_ads_plan = (By.XPATH, "//*[text()='百度新闻']")
    shouye = (By.XPATH, "//a[text()= '首页']")
    zanTing = (By.XPATH, "//span[text()= '删 除']")
    bianji = (By.XPATH, "//span[text()= '编 辑']")
    addSuCai = (By.XPATH, "//span[text()= '添加']")


    def isElementExists(self, *loc):
        flag = True
        try:
            for num in range(0, len(loc)):
                print(str(loc[num]))
                self.driver.find_element(*loc[num])
            return flag
        except:
            flag = False
            return flag



    # 判断元素是否显示
    def is_ElementExists(self):
        return self.isElementExists((self.new_ads_plan), 
                                    (self.shouye),
                                    (self.zanTing),
                                    (self.bianji),
                                    (self.addSuCai))   

# 此处必须将多个定位元素的入参以元祖的形式填入,每一个元素的定位参数都是一个数组。
复制代码

 

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2017-06-05 stringbuffer 和 stringbuilder区别
2017-06-05 hashset和treeset的区别
2017-06-05 网络协议TCP、Http、webservice、socket区别
点击右上角即可分享
微信分享提示