【问题标题】:Unable to locate element in Selenium Python (not able to find frame for the element)无法在 Selenium Python 中找到元素(无法找到元素的框架)
【发布时间】:2018-08-01 14:07:54
【问题描述】:

我无法使用 selenium 定位元素。
我已经搜索并发现有框架并且通过更改框架我可以获得元素。
但就我而言,我找不到框架。
我已经搜索了整个html但无法找到框架只能找到表单。

这是我编辑的代码 sn-p 以获得一个粗略的想法:-

<div class="collapse navbar-collapse"> ==$0
      <div class="nav nabar-right">==$0
             <div class="navpage-header-content">
                        <form target="gsft_main" role="search" action="text_search_exact_match.do" aria-label="Global Search" class="form-inline navpage-global-search ng-non-bindable" method="GET">
                          <div class="input-group-transparent">
                          <input id="sysparm_search" placeholder="Search" class="form-control form-control-search" type="search"name="sysparm_search">
                          <label for="sysparm_search" title="Search" data-original-title="Search">
                           <span class="input-group-addon-transparent icon- search sysparm-search-icon"></span>
                           </label>
                           </div>
                           </form>
                 </div>

我的元素 ID 是 sysparm_search。
与堆栈溢出的搜索栏相同,位于同一区域。

我试过了

wait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it("gsft_main"))  
element3=driver.find_element_by_id("sysparm_search")  

但没有得到元素:
错误是:- 无法定位元素:

【问题讨论】:

  • 在您的 html 中,id 是 sysparm_search,在您的代码 sn-p 中,您有 spysparm_search。是这个问题吗?
  • 哦,该死的,我会检查一下
  • 谢谢纠正它,但问题仍然存在......
  • 错误出现在你搜索sysparm_search的那一行还是你切换到gsft_main的那一行?
  • @Bob thnx 为你付出的努力......欣赏它

标签: python selenium-webdriver selenium-chromedriver


【解决方案1】:

我正在搜索,这就是我得到的。
该元素在那里,但主要问题是登录后我被重定向到此页面。剧本继续。所以没找到。

我使用的工作是让脚本等到我通过这个命令找到元素。

wait(driver, 10).until(EC.presence_of_element_located((By.ID, "sysparm_search")))

希望对某人有所帮助.....

【讨论】:

    猜你喜欢
    • 2018-01-10
    • 1970-01-01
    • 2022-09-30
    • 2015-03-06
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    相关资源
    最近更新 更多