Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bug] Flaky test: test_input_filters #431

Open
youhaveme9 opened this issue Jan 27, 2025 · 2 comments · May be fixed by #436
Open

[bug] Flaky test: test_input_filters #431

youhaveme9 opened this issue Jan 27, 2025 · 2 comments · May be fixed by #436
Labels

Comments

@youhaveme9
Copy link
Contributor

Describe the bug
Another flaky test in test_input_filters

======================================================================
ERROR: test_input_filters (test_project.tests.test_selenium.TestInputFilters) [Test InputFilter]
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/unittest/case.py", line 59, in testPartExecutor
    yield
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/unittest/case.py", line 498, in subTest
    yield
  File "/home/runner/work/openwisp-utils/openwisp-utils/tests/test_project/tests/test_selenium.py", line 614, in test_input_filters
    self.web_driver.find_element(By.XPATH, horror_result_xpath)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 748, in find_element
    return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 354, in execute
    self.error_handler.check_response(response)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="result_list"]/tbody/tr/th/a[contains(text(), "Horror")]"}
  (Session info: chrome=132.0.6834.83); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception

Expected behavior
Test should always pass

System Information:
Observed in CI builds.

@youhaveme9
Copy link
Contributor Author

Normally when the test run successfully when I looked the page source, the page is Select shelf to change while when the test fails, the page is Network Administration

Page source on test fail:

<html lang="en-us" dir="ltr"><head>
    <title>Network Administration | OpenWISP Admin</title>
    <link rel="stylesheet" type="text/css" href="/static/admin/css/base.css">
    
    
    
      
    
    
      
        <link rel="stylesheet" type="text/css" href="/static/admin/css/openwisp.css" media="all">
      
        <link rel="stylesheet" type="text/css" href="/static/menu-test.css" media="all">
      
        <link rel="icon" type="image/x-icon" href="/static/ui/openwisp/images/favicon.png">
      
    
    
      
       <style>
        *, *:before, *:after {
          transition:none!important;
        }
       </style>
      
    <link rel="stylesheet" href="/static/admin/css/dashboard.css">
    <link rel="stylesheet" type="text/css" href="/static/admin/css/ow-dashboard.css">
    
    <link rel="stylesheet" type="text/css" href="/static/dashboard-test.css">
    
    
    
    
      
      
        <script type="text/javascript" src="/static/admin/js/vendor/jquery/jquery.min.js"></script>
        <script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
      
    
    
        <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
        <link rel="stylesheet" type="text/css" href="/static/admin/css/responsive.css">
        
    
    <meta name="robots" content="NONE,NOARCHIVE">
    <style id="plotly.js-style-global"></style></head>
    
    <body class=" dashboard" data-admin-utc-offset="0">
    
    <!-- Container -->
    <div id="container" class="">
      
        <div class="menu-backdrop"></div>
        <div id="menu" style="transition-duration: 0.1s;">
          <div class="menu-bar">
            
      <div class="head">
        <span tabindex="0" role="button" aria-label="Minimize menu" class="hamburger">
        <span></span></span>
        <h1 id="site-name"><a href="/admin/">OpenWISP</a></h1>
      </div>
    
          </div>
          
          
    <button class="menu-toggle" title="Minimize menu" style="transition-duration: 0.1s;">
      <span></span>
    </button>
    <nav class="nav">
       
      <a class="menu-item" href="/admin" aria-label="Home">
        <span class="ow-dashboard-icon icon"></span>
        <span class="label">Home</span>
      </a>
        
      <a class="menu-item" href="/admin/test_project/shelf/" aria-label="Shelfs">
        <span class="shelf icon"></span>
        <span class="label">Shelfs</span>
      </a>
        
      <div class="menu-group">
        <div id="mg-control-32" aria-label="Authentication And Authorization" tabindex="0" role="button" aria-expanded="false" aria-controls="mg-dropdown-32" class="mg-head">
          <div class="mg-heading">
            <span class="auth icon"></span>
            <span class="label">Authentication And Authorization</span>
          </div>
          <span class="mg-arrow"></span>
        </div>
        <div id="mg-dropdown-32" role="region" aria-labelledby="mg-control-32" class="mg-dropdown">
          <div class="mg-dropdown-label">Authentication And Authorization</div>
          <ul class="mg-list">
            
            <li>
              <a class="mg-link" href="/admin/auth/user/" aria-label="Users" tabindex="-1">
                <span class="user icon"></span>
                <span class="label">Users</span>
              </a>
            </li>
            
            <li>
              <a class="mg-link" href="/admin/auth/user/add/" aria-label="Add user" tabindex="-1">
                <span class="add-user icon"></span>
                <span class="label">Add user</span>
              </a>
            </li>
            
          </ul>
        </div>
      </div>
        
      <div class="menu-group">
        <div id="mg-control-33" aria-label="Docs" tabindex="0" role="button" aria-expanded="false" aria-controls="mg-dropdown-33" class="mg-head">
          <div class="mg-heading">
            <span class="docs icon"></span>
            <span class="label">Docs</span>
          </div>
          <span class="mg-arrow"></span>
        </div>
        <div id="mg-dropdown-33" role="region" aria-labelledby="mg-control-33" class="mg-dropdown">
          <div class="mg-dropdown-label">Docs</div>
          <ul class="mg-list">
            
            <li>
              <a class="mg-link" href="https://openwisp.org/" aria-label="OpenWISP" tabindex="-1">
                <span class="link icon"></span>
                <span class="label">OpenWISP</span>
              </a>
            </li>
            
            <li>
              <a class="mg-link" href="https://openwisp.org/thecode.html" aria-label="Code" tabindex="-1">
                <span class="code icon"></span>
                <span class="label">Code</span>
              </a>
            </li>
            
          </ul>
        </div>
      </div>
        
      <a class="menu-item" href="/admin/openwisp-system-info/" aria-label="System info">
        <span class="ow-info-icon icon"></span>
        <span class="label">System info</span>
      </a>
       
    </nav>
    
          
        </div>
      
      <div id="main-content" style="transition-duration: 0.1s;">
        
        <!-- Header -->
        
          <div id="header">
            
            
              <div id="ow-user-tools">
              
      <div class="account">
        <div title="account" id="account-btn" role="button" tabindex="0" aria-label="account button" aria-expanded="false" aria-controls="account-dropdown" class="account-button toggle-btn tooltip-sm">
          <span class="user"></span>
          <strong>Tester</strong>
        </div>
        <ul id="account-dropdown" role="list" aria-labelledby="account-btn" class="account-menu hide">
          <li class="account-menu-username">
            <span class="user"></span>
            <strong>Tester</strong>
          </li>
          
          <li>
            <a tabindex="-1" href="/admin/password_change/">
              <span class="password"></span>
              Change password
            </a>
          </li>
          
          <li>
            <a tabindex="-1" class="menu-link" href="/admin/logout/">
              <span class="logout"></span>
              Log out
            </a>
          </li>
        </ul>
      </div>
    
              </div>
            
          </div>
        
        <!-- END Header -->
        
        <div class="breadcrumbs">
        <a href="/admin/">Home</a>
         › Network Administration
        </div>
        
        
        <div class="main" id="main">
          
          <div class="content">
            
    
              
                <ul class="messagelist">
                  <li class="warning">We gather anonymous usage metrics to enhance OpenWISP. You can opt out from the <a href="/admin/openwisp-system-info/">System Information page</a>.</li>
                </ul>
              
            
    
    
    
    
      <div style="display:none">Testing dashboard</div>
    
        <div style="display:none">dashboard-test.config1</div>
    
    
        <div style="display:none">dashboard-test.config2</div>
    
    
    
      <div style="display:none">Testing dashboard</div>
    
        <div style="display:none">dashboard-test.config1</div>
    
    
        <div style="display:none">dashboard-test.config2</div>
    
    
    
    
    <div id="plot-container"><div class="js-plotly-plot operator-project-distribution"><div class="plot-container plotly"><div class="svg-container" style="position: relative; width: 450px; height: 450px;"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450" style="background: rgb(255, 255, 255);"><defs id="defs-4ffefe"><g class="clips"></g><g class="gradients"></g></defs><g class="bglayer"></g><g class="draglayer"></g><g class="layer-below"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="cartesianlayer"></g><g class="polarlayer"></g><g class="ternarylayer"></g><g class="geolayer"></g><g class="funnelarealayer"></g><g class="pielayer"><g class="trace" stroke-linejoin="round" style="opacity: 1;"><g class="slice"><path class="surface" d="M224.99999999999997,138a87,87 0 0 0 3.196328145774592e-14,174l7.102951435054649e-15,58a145,145 0 0 1 -5.3272135762909865e-14,-290Z" style="pointer-events: all; stroke-width: 0; fill: rgb(255, 165, 0); fill-opacity: 1; stroke: rgb(68, 68, 68); stroke-opacity: 1;"></path><g class="slicetext"><text data-notex="1" class="slicetext" transform="translate(109,221.20019531250003)" text-anchor="middle" data-unformatted="&lt;b&gt;1&lt;/b&gt;&lt;br&gt;(50%)" data-math="N" x="0" y="0" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 12px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre;"><tspan class="line" dy="0em" x="0" y="0"><tspan style="font-weight:bold">1</tspan></tspan><tspan class="line" dy="1.3em" x="0" y="0">(50%)</tspan></text></g></g><g class="slice"><path class="surface" d="M225,312a87,87 0 0 0 -1.0654427152581972e-14,-174l0,-58a145,145 0 0 1 1.7757378587636622e-14,290Z" style="pointer-events: all; stroke-width: 0; fill: rgb(255, 0, 0); fill-opacity: 1; stroke: rgb(68, 68, 68); stroke-opacity: 1;"></path><g class="slicetext"><text data-notex="1" class="slicetext" transform="translate(341,221.2001953125)" text-anchor="middle" data-unformatted="&lt;b&gt;1&lt;/b&gt;&lt;br&gt;(50%)" data-math="N" x="0" y="0" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 12px; fill: rgb(255, 255, 255); fill-opacity: 1; white-space: pre;"><tspan class="line" dy="0em" x="0" y="0"><tspan style="font-weight:bold">1</tspan></tspan><tspan class="line" dy="1.3em" x="0" y="0">(50%)</tspan></text></g></g></g></g><g class="treemaplayer"></g><g class="sunburstlayer"></g><g class="glimages"></g></svg><div class="gl-container"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450"><defs id="topdefs-4ffefe"><g class="clips"></g></defs><g class="indicatorlayer"></g><g class="layer-above"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="infolayer"><g class="g-gtitle"><text class="gtitle" x="225" y="36" text-anchor="middle" dy="0.7em" data-unformatted="Operator Project Distribution" data-math="N" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 20px; fill: rgb(68, 68, 68); opacity: 1; font-weight: normal; white-space: pre;">Operator Project Distribution</text></g><g class="annotation" data-index="0" style="opacity: 1;"><g class="annotation-text-g" transform="rotate(0,225,225)"><g class="cursor-pointer" transform="translate(216, 211)"><rect class="bg" x="0.5" y="0.5" width="17" height="27" style="stroke-width: 1px; stroke: rgb(0, 0, 0); stroke-opacity: 0; fill: rgb(0, 0, 0); fill-opacity: 0;"></rect><text class="annotation-text" text-anchor="middle" data-unformatted="&lt;b&gt;2&lt;/b&gt;" data-math="N" x="8.9609375" y="21" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 20px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre;"><tspan style="font-weight:bold">2</tspan></text></g></g></g></g><g class="menulayer"></g><g class="zoomlayer"></g></svg><div class="modebar-container" style="position: absolute; top: 0px; right: 0px; width: 100%;"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450"><g class="hoverlayer"></g></svg></div></div><div class="quick-link-container"><a href="/admin/test_project/operator/" title="View complete list of operators" class="button quick-link negative-top-20">Open Operators list</a></div></div><div class="js-plotly-plot operator-presence-in-projects"><div class="plot-container plotly"><div class="svg-container" style="position: relative; width: 450px; height: 450px;"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450" style="background: rgb(255, 255, 255);"><defs id="defs-3e14c0"><g class="clips"></g><g class="gradients"></g></defs><g class="bglayer"></g><g class="draglayer"></g><g class="layer-below"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="cartesianlayer"></g><g class="polarlayer"></g><g class="ternarylayer"></g><g class="geolayer"></g><g class="funnelarealayer"></g><g class="pielayer"><g class="trace" stroke-linejoin="round" style="opacity: 1;"><g class="slice"><path class="surface" d="M225,312a87,87 0 1 0 -3.196328145774592e-14,-174a87,87 0 1 0 3.196328145774592e-14,174ZM225.00000000000003,370a145,145 0 1 1 -5.3272135762909865e-14,-290a145,145 0 1 1 5.3272135762909865e-14,290Z" style="pointer-events: all; stroke-width: 0; fill: rgb(38, 113, 38); fill-opacity: 1; stroke: rgb(68, 68, 68); stroke-opacity: 1;"></path><g class="slicetext"><text data-notex="1" class="slicetext" transform="translate(224.99999999999997,105.2001953125)" text-anchor="middle" data-unformatted="&lt;b&gt;2&lt;/b&gt;&lt;br&gt;(100%)" data-math="N" x="0" y="0" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 12px; fill: rgb(255, 255, 255); fill-opacity: 1; white-space: pre;"><tspan class="line" dy="0em" x="0" y="0"><tspan style="font-weight:bold">2</tspan></tspan><tspan class="line" dy="1.3em" x="0" y="0">(100%)</tspan></text></g></g></g></g><g class="treemaplayer"></g><g class="sunburstlayer"></g><g class="glimages"></g></svg><div class="gl-container"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450"><defs id="topdefs-3e14c0"><g class="clips"></g><clipPath id="legend3e14c0"><rect width="304" height="29" x="0" y="0"></rect></clipPath></defs><g class="indicatorlayer"></g><g class="layer-above"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="infolayer"><g class="legend" pointer-events="all" transform="translate(80, 421)"><rect class="bg" shape-rendering="crispEdges" width="304" height="29" x="0" y="0" style="stroke: rgb(68, 68, 68); stroke-opacity: 1; fill: rgb(0, 0, 0); fill-opacity: 0; stroke-width: 0px;"></rect><g class="scrollbox" transform="translate(0, 0)" clip-path="url('#legend3e14c0')"><g class="groups"><g class="traces" transform="translate(0, 14.5)" style="opacity: 1;"><text class="legendtext user-select-none" text-anchor="start" x="40" y="4.680000000000001" data-unformatted="&amp;lt;strong&amp;gt;Projects with operators&amp;lt;/strong&amp;gt;" data-math="N" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 12px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre;">&lt;strong&gt;Projects with operators&lt;/strong&gt;</text><g class="layers" style="opacity: 1;"><g class="legendfill"></g><g class="legendlines"></g><g class="legendsymbols"><g class="legendpoints"><path class="legendpie" d="M6,6H-6V-6H6Z" transform="translate(20,0)" style="stroke-width: 0; fill: rgb(38, 113, 38); fill-opacity: 1; stroke: rgb(68, 68, 68); stroke-opacity: 1;"></path></g></g></g><rect class="legendtoggle" pointer-events="all" x="0" y="-9.5" width="298.90625" height="19" style="cursor: pointer; fill: rgb(0, 0, 0); fill-opacity: 0;"></rect></g></g></g><rect class="scrollbar" rx="20" ry="3" width="0" height="0" x="0" y="0" style="fill: rgb(128, 139, 164); fill-opacity: 1;"></rect></g><g class="g-gtitle"><text class="gtitle" x="225" y="36" text-anchor="middle" dy="0.7em" data-unformatted="Operator presence in projects" data-math="N" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 20px; fill: rgb(68, 68, 68); opacity: 1; font-weight: normal; white-space: pre;">Operator presence in projects</text></g><g class="annotation" data-index="0" style="opacity: 1;"><g class="annotation-text-g" transform="rotate(0,225,225)"><g class="cursor-pointer" transform="translate(216, 211)"><rect class="bg" x="0.5" y="0.5" width="17" height="27" style="stroke-width: 1px; stroke: rgb(0, 0, 0); stroke-opacity: 0; fill: rgb(0, 0, 0); fill-opacity: 0;"></rect><text class="annotation-text" text-anchor="middle" data-unformatted="&lt;b&gt;2&lt;/b&gt;" data-math="N" x="8.9609375" y="21" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 20px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre;"><tspan style="font-weight:bold">2</tspan></text></g></g></g></g><g class="menulayer"></g><g class="zoomlayer"></g></svg><div class="modebar-container" style="position: absolute; top: 0px; right: 0px; width: 100%;"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450"><g class="hoverlayer"></g></svg></div></div></div><div class="js-plotly-plot open-radius-sessions"><div class="plot-container plotly"><div class="svg-container" style="position: relative; width: 450px; height: 450px;"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450" style="background: rgb(255, 255, 255);"><defs id="defs-6412d0"><g class="clips"></g><g class="gradients"></g></defs><g class="bglayer"></g><g class="draglayer"></g><g class="layer-below"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="cartesianlayer"></g><g class="polarlayer"></g><g class="ternarylayer"></g><g class="geolayer"></g><g class="funnelarealayer"></g><g class="pielayer"><g class="trace" stroke-linejoin="round" style="opacity: 1;"><g class="slice"><path class="surface" d="M225,138a87,87 0 1 0 1.0654427152581972e-14,174a87,87 0 1 0 -1.0654427152581972e-14,-174ZM225,80a145,145 0 1 1 1.7757378587636622e-14,290a145,145 0 1 1 -1.7757378587636622e-14,-290Z" style="pointer-events: all; stroke-width: 0; fill: rgb(128, 128, 128); fill-opacity: 0.568627; stroke: rgb(68, 68, 68); stroke-opacity: 1;"></path><g class="slicetext"><text data-notex="1" class="slicetext" transform="translate(225,345)" text-anchor="middle" data-unformatted=" " data-math="N" x="0" y="0" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 12px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre;"> </text></g></g></g></g><g class="treemaplayer"></g><g class="sunburstlayer"></g><g class="glimages"></g></svg><div class="gl-container"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450"><defs id="topdefs-6412d0"><g class="clips"></g></defs><g class="indicatorlayer"></g><g class="layer-above"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="infolayer"><g class="g-gtitle"><text class="gtitle" x="225" y="36" text-anchor="middle" dy="0.7em" data-unformatted="Open RADIUS Sessions" data-math="N" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 20px; fill: rgb(68, 68, 68); opacity: 1; font-weight: normal; white-space: pre;">Open RADIUS Sessions</text></g><g class="annotation" data-index="0" style="opacity: 1;"><g class="annotation-text-g" transform="rotate(0,225,225)"><g class="cursor-pointer" transform="translate(216, 211)"><rect class="bg" x="0.5" y="0.5" width="17" height="27" style="stroke-width: 1px; stroke: rgb(0, 0, 0); stroke-opacity: 0; fill: rgb(0, 0, 0); fill-opacity: 0;"></rect><text class="annotation-text" text-anchor="middle" data-unformatted="&lt;b&gt;0&lt;/b&gt;" data-math="N" x="8.9609375" y="21" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 20px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre;"><tspan style="font-weight:bold">0</tspan></text></g></g></g></g><g class="menulayer"></g><g class="zoomlayer"></g></svg><div class="modebar-container" style="position: absolute; top: 0px; right: 0px; width: 100%;"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450"><g class="hoverlayer"></g></svg></div></div></div><div class="js-plotly-plot shelf-books-type"><div class="plot-container plotly"><div class="svg-container" style="position: relative; width: 450px; height: 450px;"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450" style="background: rgb(255, 255, 255);"><defs id="defs-9cad2e"><g class="clips"></g><g class="gradients"></g></defs><g class="bglayer"></g><g class="draglayer"></g><g class="layer-below"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="cartesianlayer"></g><g class="polarlayer"></g><g class="ternarylayer"></g><g class="geolayer"></g><g class="funnelarealayer"></g><g class="pielayer"><g class="trace" stroke-linejoin="round" style="opacity: 1;"><g class="slice"><path class="surface" d="M224.99999999999997,138a87,87 0 0 0 3.196328145774592e-14,174l7.102951435054649e-15,58a145,145 0 0 1 -5.3272135762909865e-14,-290Z" style="pointer-events: all; stroke-width: 0; fill: rgb(255, 0, 0); fill-opacity: 1; stroke: rgb(68, 68, 68); stroke-opacity: 1;"></path><g class="slicetext"><text data-notex="1" class="slicetext" transform="translate(109,221.20019531250003)" text-anchor="middle" data-unformatted="&lt;b&gt;1&lt;/b&gt;&lt;br&gt;(50%)" data-math="N" x="0" y="0" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 12px; fill: rgb(255, 255, 255); fill-opacity: 1; white-space: pre;"><tspan class="line" dy="0em" x="0" y="0"><tspan style="font-weight:bold">1</tspan></tspan><tspan class="line" dy="1.3em" x="0" y="0">(50%)</tspan></text></g></g><g class="slice"><path class="surface" d="M225,312a87,87 0 0 0 -1.0654427152581972e-14,-174l0,-58a145,145 0 0 1 1.7757378587636622e-14,290Z" style="pointer-events: all; stroke-width: 0; fill: rgb(31, 119, 180); fill-opacity: 1; stroke: rgb(68, 68, 68); stroke-opacity: 1;"></path><g class="slicetext"><text data-notex="1" class="slicetext" transform="translate(341,221.2001953125)" text-anchor="middle" data-unformatted="&lt;b&gt;1&lt;/b&gt;&lt;br&gt;(50%)" data-math="N" x="0" y="0" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 12px; fill: rgb(255, 255, 255); fill-opacity: 1; white-space: pre;"><tspan class="line" dy="0em" x="0" y="0"><tspan style="font-weight:bold">1</tspan></tspan><tspan class="line" dy="1.3em" x="0" y="0">(50%)</tspan></text></g></g></g></g><g class="treemaplayer"></g><g class="sunburstlayer"></g><g class="glimages"></g></svg><div class="gl-container"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450"><defs id="topdefs-9cad2e"><g class="clips"></g><clipPath id="legend9cad2e"><rect width="99" height="48" x="0" y="0"></rect></clipPath></defs><g class="indicatorlayer"></g><g class="layer-above"><g class="imagelayer"></g><g class="shapelayer"></g></g><g class="infolayer"><g class="legend" pointer-events="all" transform="translate(80, 402)"><rect class="bg" shape-rendering="crispEdges" width="99" height="48" x="0" y="0" style="stroke: rgb(68, 68, 68); stroke-opacity: 1; fill: rgb(0, 0, 0); fill-opacity: 0; stroke-width: 0px;"></rect><g class="scrollbox" transform="translate(0, 0)" clip-path="url('#legend9cad2e')"><g class="groups"><g class="traces" transform="translate(0, 14.5)" style="opacity: 1;"><text class="legendtext user-select-none" text-anchor="start" x="40" y="4.680000000000001" data-unformatted="FACTUAL" data-math="N" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 12px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre;">FACTUAL</text><g class="layers" style="opacity: 1;"><g class="legendfill"></g><g class="legendlines"></g><g class="legendsymbols"><g class="legendpoints"><path class="legendpie" d="M6,6H-6V-6H6Z" transform="translate(20,0)" style="stroke-width: 0; fill: rgb(255, 0, 0); fill-opacity: 1; stroke: rgb(68, 68, 68); stroke-opacity: 1;"></path></g></g></g><rect class="legendtoggle" pointer-events="all" x="0" y="-9.5" width="93.5" height="19" style="cursor: pointer; fill: rgb(0, 0, 0); fill-opacity: 0;"></rect></g><g class="traces" transform="translate(0, 33.5)" style="opacity: 1;"><text class="legendtext user-select-none" text-anchor="start" x="40" y="4.680000000000001" data-unformatted="Horror" data-math="N" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 12px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre;">Horror</text><g class="layers" style="opacity: 1;"><g class="legendfill"></g><g class="legendlines"></g><g class="legendsymbols"><g class="legendpoints"><path class="legendpie" d="M6,6H-6V-6H6Z" transform="translate(20,0)" style="stroke-width: 0; fill: rgb(31, 119, 180); fill-opacity: 1; stroke: rgb(68, 68, 68); stroke-opacity: 1;"></path></g></g></g><rect class="legendtoggle" pointer-events="all" x="0" y="-9.5" width="93.5" height="19" style="cursor: pointer; fill: rgb(0, 0, 0); fill-opacity: 0;"></rect></g></g></g><rect class="scrollbar" rx="20" ry="3" width="0" height="0" x="0" y="0" style="fill: rgb(128, 139, 164); fill-opacity: 1;"></rect></g><g class="g-gtitle"><text class="gtitle" x="225" y="36" text-anchor="middle" dy="0.7em" data-unformatted="Shelf Books Type" data-math="N" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 20px; fill: rgb(68, 68, 68); opacity: 1; font-weight: normal; white-space: pre;">Shelf Books Type</text></g><g class="annotation" data-index="0" style="opacity: 1;"><g class="annotation-text-g" transform="rotate(0,225,225)"><g class="cursor-pointer" transform="translate(216, 211)"><rect class="bg" x="0.5" y="0.5" width="17" height="27" style="stroke-width: 1px; stroke: rgb(0, 0, 0); stroke-opacity: 0; fill: rgb(0, 0, 0); fill-opacity: 0;"></rect><text class="annotation-text" text-anchor="middle" data-unformatted="&lt;b&gt;2&lt;/b&gt;" data-math="N" x="8.9609375" y="21" style="font-family: &quot;Open Sans&quot;, verdana, arial, sans-serif; font-size: 20px; fill: rgb(68, 68, 68); fill-opacity: 1; white-space: pre;"><tspan style="font-weight:bold">2</tspan></text></g></g></g></g><g class="menulayer"></g><g class="zoomlayer"></g></svg><div class="modebar-container" style="position: absolute; top: 0px; right: 0px; width: 100%;"></div><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="450"><g class="hoverlayer"></g></svg></div></div></div></div>
    
    
    
    
    
            
            <!-- Content -->
            <div id="content" class="colMS">
              <div class="title-wrapper">
                
                <h1>Network Administration</h1>
                
                
              </div>
              
    
    <div id="content-main">
      
    
    
      
        <div class="app-auth module">
          <table>
            <caption>
              <a href="/admin/auth/" class="section" title="Models in the Authentication and Authorization application">Authentication and Authorization</a>
            </caption>
            
              <tbody><tr class="model-group">
                
                  <th scope="row"><a href="/admin/auth/group/">Groups</a></th>
                
    
                
                  <td><a href="/admin/auth/group/add/" class="addlink">Add</a></td>
                
    
                
                  
                    <td><a href="/admin/auth/group/" class="changelink">Change</a></td>
                  
                
              </tr>
            
              <tr class="model-user">
                
                  <th scope="row"><a href="/admin/auth/user/">Users</a></th>
                
    
                
                  <td><a href="/admin/auth/user/add/" class="addlink">Add</a></td>
                
    
                
                  
                    <td><a href="/admin/auth/user/" class="changelink">Change</a></td>
                  
                
              </tr>
            
          </tbody></table>
        </div>
      
        <div class="app-sites module">
          <table>
            <caption>
              <a href="/admin/sites/" class="section" title="Models in the Sites application">Sites</a>
            </caption>
            
              <tbody><tr class="model-site">
                
                  <th scope="row"><a href="/admin/sites/site/">Sites</a></th>
                
    
                
                  <td><a href="/admin/sites/site/add/" class="addlink">Add</a></td>
                
    
                
                  
                    <td><a href="/admin/sites/site/" class="changelink">Change</a></td>
                  
                
              </tr>
            
          </tbody></table>
        </div>
      
        <div class="app-test_project module">
          <table>
            <caption>
              <a href="/admin/test_project/" class="section" title="Models in the Test_Project application">Test_Project</a>
            </caption>
            
              <tbody><tr class="model-book">
                
                  <th scope="row"><a href="/admin/test_project/book/">Books</a></th>
                
    
                
                  <td><a href="/admin/test_project/book/add/" class="addlink">Add</a></td>
                
    
                
                  
                    <td><a href="/admin/test_project/book/" class="changelink">Change</a></td>
                  
                
              </tr>
            
              <tr class="model-operator">
                
                  <th scope="row"><a href="/admin/test_project/operator/">Operators</a></th>
                
    
                
                  <td><a href="/admin/test_project/operator/add/" class="addlink">Add</a></td>
                
    
                
                  
                    <td><a href="/admin/test_project/operator/" class="changelink">Change</a></td>
                  
                
              </tr>
            
              <tr class="model-organizationradiussettings">
                
                  <th scope="row"><a href="/admin/test_project/organizationradiussettings/">Organization radius settingss</a></th>
                
    
                
                  <td><a href="/admin/test_project/organizationradiussettings/add/" class="addlink">Add</a></td>
                
    
                
                  
                    <td><a href="/admin/test_project/organizationradiussettings/" class="changelink">Change</a></td>
                  
                
              </tr>
            
              <tr class="model-project">
                
                  <th scope="row"><a href="/admin/test_project/project/">Projects</a></th>
                
    
                
                  <td><a href="/admin/test_project/project/add/" class="addlink">Add</a></td>
                
    
                
                  
                    <td><a href="/admin/test_project/project/" class="changelink">Change</a></td>
                  
                
              </tr>
            
              <tr class="model-radiusaccounting">
                
                  <th scope="row"><a href="/admin/test_project/radiusaccounting/">Radius accountings</a></th>
                
    
                
                  <td></td>
                
    
                
                  
                    <td><a href="/admin/test_project/radiusaccounting/" class="changelink">Change</a></td>
                  
                
              </tr>
            
              <tr class="model-shelf">
                
                  <th scope="row"><a href="/admin/test_project/shelf/">Shelfs</a></th>
                
    
                
                  <td><a href="/admin/test_project/shelf/add/" class="addlink">Add</a></td>
                
    
                
                  
                    <td><a href="/admin/test_project/shelf/" class="changelink">Change</a></td>
                  
                
              </tr>
            
          </tbody></table>
        </div>
      
    
    
    </div>
    
    
              
    <div id="content-related">
        <div class="module" id="recent-actions-module">
            <h2>Recent actions</h2>
            <h3>My actions</h3>
                
                
                
                <p>None available</p>
                
        </div>
    </div>
    
              <br class="clear">
            </div>
            <!-- END Content -->
            
    
    <div id="ow-loading" class="ow-overlay">
      <div class="ow-overlay-inner">
        <div class="ow-loading-spinner"></div>
      </div>
    </div>
    
    
    
        <script src="/static/admin/js/menu.js"></script>
    
    
        
            <script src="/static/dummy.js"></script>
        
    
    
    
    <script>
      const owDashboardCharts = {0: {'name': 'Operator Project Distribution', 'query_params': {'values': [1, 1], 'labels': ['User', 'Utils']}, 'colors': ['orange', 'red'], 'labels': {'Utils': 'Utils', 'User': 'User'}, 'quick_link': {'url': '/admin/test_project/operator/', 'label': 'Open Operators list', 'title': 'View complete list of operators', 'custom_css_classes': ['negative-top-20']}, 'target_link': '/admin/test_project/operator/?project__name__exact=', 'filters': ['User', 'Utils']}, 1: {'name': 'Operator presence in projects', 'query_params': {'values': [2], 'labels': ['&lt;strong&gt;Projects with operators&lt;/strong&gt;']}, 'colors': ['#267126'], 'labels': {'with_operator__sum': '&lt;strong&gt;Projects with operators&lt;/strong&gt;', 'without_operator__sum': 'Projects without operators'}, 'filters': ['true'], 'target_link': '/admin/test_project/project/?with_operator='}, 3: {'name': 'Open RADIUS Sessions', 'query_params': {'values': [], 'labels': []}, 'colors': [], 'labels': {'active__count': 'Active sessions'}, 'filters': {'key': 'stop_time__isnull', 'active__count': 'true'}, 'target_link': '/admin/test_project/radiusaccounting/?stop_time__isnull='}, 4: {'name': 'Shelf Books Type', 'query_params': {'values': [1, 1], 'labels': ['FACTUAL', 'Horror']}, 'colors': ['red'], 'labels': {'HORROR': 'Horror', 'FANTASY': 'Fantasy'}, 'target_link': '/admin/test_project/shelf/?created_at__date=2025-02-10&books_type__exact=', 'filters': ['HORROR']}};
    </script>
    <script src="/static/admin/vendor/js/plotly-cartesian.min.js"></script>
    <script src="/static/admin/js/ow-dashboard.js"></script>
    
    <script src="/static/dashboard-test.js"></script>
    
    
    
          </div>
        </div>
        </div>
    </div><svg id="js-plotly-tester" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position: absolute; left: -10000px; top: -10000px; width: 9000px; height: 9000px; z-index: 1;"><path class="js-reference-point" d="M0,0H1V1H0Z" style="stroke-width: 0; fill: black;"></path></svg>
    <!-- END Container -->
    
    
    </body></html>

@pandafy
Copy link
Member

pandafy commented Feb 10, 2025

From the initial glimpse, this looks like the /admin/ page

        <div class="breadcrumbs">
        <a href="/admin/">Home</a>
         › Network Administration
        </div>

I suspect these lines are doing something which changes the URL of the page

https://github.com/openwisp/openwisp-utils/blob/1d648f519c28d670a1912cfa36512e4e7d6d02d8/tests/test_project/tests/test_selenium.py#L610-L613C13

@youhaveme9 youhaveme9 linked a pull request Feb 10, 2025 that will close this issue
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: To do (Python & Django)
Development

Successfully merging a pull request may close this issue.

2 participants