当前位置: 首页 > 知识库问答 >
问题:

如果条件不起作用,当browser.find_element_by_xpath没有数据或无法找到元素

督宏旷
2023-03-14
            if not(browser.find_element_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a')):
                email = 'No data'
            else:
                email = browser.find_element_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a').get_attribute("textContent")
            print(email)

>

  • browser.find_element_by_xpath('//div[@id=“MainCopy_ctl13_presentJob_EmailAddressPanel”]//a')).get_attribute(“textContent”) 没有数据

    我写了一个条件,如果我们提供的xpath中没有数据,它应该替换为“无数据”。

    如果存在数据,我们需要存储电子邮件地址,否则我们需要存储默认值(即)“无数据”

    这是我每次收到的错误。

    硒。NoSuchElementException:消息:没有这样的元素:找不到元素:{“method”:“xpath”,“selector”:”//div[@id=“MainCopy_ctl13_presentJob_EmailAddressPanel”]//a“}(会话信息:chrome=88.0.4324.150)

  • 共有1个答案

    贡和裕
    2023-03-14

    您可以在try/除子句中运行它。

    try:
        email = browser.find_element_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a').get_attribute("textContent")
    except:
        email = 'No data'
    

    您还可以使用< code>find_elements,如果没有找到元素,它将返回一个空列表。然后可以使用if语句测试列表是否为空。

    if browser.find_elements_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]'):
        email = browser.find_element_by_xpath('//div[@id="MainCopy_ctl13_presentJob_EmailAddressPanel"]//a').get_attribute("textContent")
    else:
        email = 'No data'
    
     类似资料:
    • 问题内容: 我一直在发疯,试图使评论条件生效,但我没有运气能有人解释我做错了什么吗? 这是我的代码: 发生的事情令人沮丧地不一致。当我在 IE8中 使用上述代码加载页面时,会收到消息 “ IE 低于 版本9”, 对吗?否,因为当我在 IE10中 加载SAME PAGE时,收到消息 “浏览器不是IE” 为什么会认为IE10不是IE浏览器?我一直在逐页进行爬网,但是从我发现的代码来看,似乎没有什么错。

    • 我有一个场景,我们在Tinymce中定义了有效和无效元素。以下是这两个值: “无效的_元素”是为了防止输入JavaScript。通过以上设置,Tinymce不会阻止JavaScript,但如果我删除“valid_元素”,它就会开始工作。 我不确定我是否删除了“valid\u元素”,Tinymce将允许所有内容,这就是为什么保留“valid\u元素”。 Tinymce版本:5.6.2 相关问题,但在

    • 我正在尝试使用此链接查看<代码>其他条件,但没有成功。 我的密码是 我的服务电话是newxyz。通用域名格式 如果则调用 如果则调用,而不是 你能告诉我哪里错了吗。

    • 我在让@RequestMapping工作时遇到了问题,我得到了以下日志;你能帮我理解一下日志吗? 调试o.s.web.servlet.DispatcherServlet-成功完成请求 访问本地主机时的日志:80/ruler/test: 调试o.s.web.servlet.DispatcherServlet-名称为“dispatcher servlet”的DispatcherServlet处理[/r

    • 具有 ANTLR 4.7 我正在尝试使用ANTLR4的语法导入功能。看见 https://github.com/BITPlan/com.bitplan.antlr 以iri语法为例https://github.com/BITPlan/com.bitplan.antlr/tree/master/src/main/antlr4/com/bitplan/iri 这种语法基本上是试图分裂https://g

    • 我正在尝试在一台新机器上设置Git,但在对远程存储库进行身份验证时遇到了问题。 我对Git的经验有限,但我之前成功地做到了以下几点: 创建本地存储库() 连接远程存储库() 在这之前一切都很顺利。但是,当我试图通过命令行或TortoiseGit与远程存储库进行交互(拉、克隆或推)时,输入凭据时会收到以下错误消息: 无法擦除凭据:找不到元素 致命:https://[我的远程存储库]的身份验证失败 这

    • 我有一段硒代码来寻找某个元素,然后点击这个相同的元素。找到该元素,但在此之后,单击似乎没有解决问题。以下是用于查找元素的代码(不幸的是使用xpaths,因为没有id,并且它使用了很多自制方法): 我使用上面的字符串xpathButton将WebElement存储在变量中,然后将WebElements传递给另一个类中的方法:SearchForElementByXPathWithWithOutSwit