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

Locator在Selenium和ChromeDriver处于无头模式时随机失败

慕通
2023-03-14

我有一个下拉菜单,其中有文本“我的菜单”。不幸的是,相同的下拉列表被用于另一个目的,文本为“My Second Menu”。我需要点击这个“我的菜单”下拉,它看起来如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<div class="c-composedDropdown u-display--flex u-align-items--center u-color--white u-cursor--pointer u-border-radius">
  <div class="u-display--flex u-align-items--center">
     <span class="flag-icon flag-icon-lg flag-icon-ie composedDropdown__subTitle__icon u-color--white" />
     <div>
        <div class="u-display--block u-display--flex u-align-items--center">
           <span class="u-font-weight--bold u-margin-right--medium">My Menu</span>
           <svg xmlns="http://www.w3.org/2000/svg" baseProfile="tiny" width="24" height="24" fill="currentColor" color="#37454D" viewBox="0 0 24 24" class="c-composedDropdown__arrow-icon u-color--blue-lighter">
              <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M9.5 7l5 5m-5 5l5-5" class="svg-color--primary" />
           </svg>
        </div>
        <p class="c-composedDropdown__subTitle u-display--block">Sample</p>
     </div>
  </div>

目前,我正在使用XPath来捕获它,如下所示。

//*[contains(@class, 'c-composedDropdown') and contains (.,'My Menu')]

每当我单独运行它时,它的测试场景都很好地通过。但是当整个测试套件运行时,这个测试随机失败。在无头模式下运行时也是如此。对于选择要单击的元素的方式,我可以做些什么吗?这能帮助测试不那么混乱吗?如有任何建议,将不胜感激。

共有1个答案

齐涛
2023-03-14

尝试使用Xpath,希望能成功。

//div[contains(@class,"c-composedDropdown")]//following-sibling::span[text()="My Menu"]
 类似资料:
  • 问题内容: 我正在使用Selenium Webdriver,Ruby 32位1.9.3,Chromedriver v2.9.248315,Chrome 38.0.2125.111 m和Jenkins 1.588的本地实例 Gems: cucumber (1.3.17),selenium-webdriver (2.43.0), watir-webdriver (0.6.11)(如果您认为有必要,可以

  • 问题内容: 我想尝试无头镀铬,但是遇到了这个问题,我无法以无头模式启动驱动程序。我正在关注google文档。我错过了什么吗?该代码执行陷在线路 这是我的代码: 问题答案: UPDATE Chrome版本60已经发布,因此您所需要做的就是通过Nuget下载Chromdriver和Selenium并使用此简单代码,一切都像个魅力。惊人。 日期 在正式发布Chrome 60之前,有一个解决方案。您可以下

  • 我有一个2分钟的Selenium webdriver脚本。它与FirefoxDriver和ChromeDriver配合使用效果非常好。真正的浏览器永远不会失败。 但是当我用HTMLUnit驱动程序运行时,我发现它随机失败。抛出异常,如找不到元素。 我尝试过的解决方案: 添加线程。睡眠至6000毫秒,但仍不能每次跑步 配置和版本: 硒-java: 2.53.0 selenium服务器:2.53.0

  • 我正在使用Selenium和Java自动化拖放。以下是在无头模式下使用chrome驱动程序执行拖放的代码。 在无头chrome驱动程序中执行时不会发生任何情况。但是,在非无头chrome驱动程序中,这可以正常工作并执行拖放。 注意-同时使用dragAndDropBy(源、目标)和dragAndDropBy(源、xOffset、yOffset)进行了尝试。这两种方法在非无头chrome中也不起作用

  • 问题内容: 我正在研究用于网络抓取的python脚本,并且没有使用Chromedriver作为软件包之一。我希望此操作无需任何弹出窗口即可在后台运行。我在chromedriver上使用了“无头”选项,它似乎在不显示浏览器窗口的情况下完成了工作,但是,我仍然看到.exe文件正在运行。查看我在说什么的屏幕截图。屏幕截图 这是我用来启动ChromeDriver的代码: 我尝试做的事情是将选项中的窗口大小