Python 如何在使用xpath提取web元素后验证其标记

Python 如何在使用xpath提取web元素后验证其标记,python,selenium,selenium-chromedriver,Python,Selenium,Selenium Chromedriver,我在python中使用selenium和chrome驱动程序 以下是我的设想: 从网页中,我使用以下代码提取具有id==customer\u info或class==prize\u info的所有元素: customer_or_prize_list=driver.find_elements_by_xpath('//*[@id="customer_info" or @class="prize_info"]') 现在我想浏览一下列表“customer\u或\

我在python中使用selenium和chrome驱动程序

以下是我的设想:

从网页中,我使用以下代码提取具有
id==customer\u info
class==prize\u info
的所有元素:

customer_or_prize_list=driver.find_elements_by_xpath('//*[@id="customer_info" or @class="prize_info"]')
现在我想浏览一下列表“customer\u或\u prize\u list”中的每个元素,并按如下方式进行处理

  • 如果web元素包含
    id==customer\u info
    ,则执行多行文本格式化(假定为操作1)
  • 如果web元素包含
    class==prize\u info
    ,则执行单行\u文本\u格式设置(假定为操作2)
  • 您可以假设web元素不同时包含id和类


    如何使用1处理列表元素。二,。上面?

    当您浏览列表中的每个元素时,使用
    get\u attribute()
    获取元素的属性:

    对于客户或获奖名单中的el:
    el.get_属性(“id”)中的“客户信息”是否为
    el.get\u属性(“类”)中的“prize=”prize\u info“是吗
    
    如果您想了解有关
    get\u attribute()
    的更多信息,请参阅


    另一种方式,

    为什么不将列表分成两个小列表,如下所示:

    customer\u list=driver。通过xpath('/*[@id=“customer\u info”]”查找\u元素
    对于客户列表中的e:
    ''进行多行文字格式化''
    prize\u list=驱动程序。通过xpath('/*[@class=“prize\u info”]'查找\u元素
    获奖名单中的e:
    ''进行单行文本格式化''
    
    是的,我目前使用的是双列表方法。我将尝试获取属性并让您知道。同时,你能给我建议一种组合XPath的方法吗。我的具体情况是-我希望web元素具有属性id='next button',但其class属性不应包含单词'disabled'。谢谢。我验证了“获取属性”方法。它工作得很好。谢谢在我之前的评论中-我问过你能否提供一个查询来过滤web元素,使其id为“next_button”且其类属性不包含“disabled”?我尝试过这个xpath--“/*[@id=“next_button”而不是(contains(@class,“disabled”)”)”--但它无效。@user1371666在我看来,xpath
    “/*[@id=“next_button”和not(contains(@class,“disabled”))]”
    是正确的,并且满足您的要求。此外,我还编写了一个HTML演示,并验证了xpath是否有效。