gpt4 book ai didi

javascript - python网络爬虫错误'没有这样的元素: Unable to locate element

转载 作者:行者123 更新时间:2023-11-29 23:18:01 36 4
gpt4 key购买 nike

我正在研究使用 selenium 进行网络爬虫,我发现了一些错误。

这是我的编码如下。

from selenium import webdriver as wd
main_url = 'https://searchad.naver.com/'
driver = wd.Chrome(executable_path='chromedriver.exe')

然后我登录了

# access main url2

main_url2 = 'https://searchad.naver.com/my-screen'

# close popup window
driver.find_element_by_css_selector('body > my-app > wrap > welcome-beginner-layer-popup > div.ly_main_pop > div.pop_top > a').click()

# main3 page access
driver.find_element_by_css_selector('.btn_area>li').click()

# click tool menu bar
driver.find_element_by_css_selector('#navbar-common-header-collapse > ul > li:nth-child(3) > a > span.ng-binding.ng-scope').click()

从上次编码(#点击工具菜单栏),有错误如下错误信息:

Message: no such element: Unable to locate element. Both Css selector and xpath are errors.

这是我在“도구”上单击鼠标之前的资源代码,如下所示。

<a class="dropdown-toggle ng-scope" ng-if="menu.items" href="" data-toggle="dropdown" role="button" aria-expanded="false"><!-- ngIf: menu.gnb != "billing" --><span ng-if="menu.gnb != &quot;billing&quot;" ng-bind-html="menu.translationId | translate" class="ng-binding ng-scope">도구</span><!-- end ngIf: menu.gnb != "billing" --><!-- ngIf: menu.gnb === "billing" --><span class="ico-dropdown-arrow"></span></a>

<!-- ngIf: menu.gnb != "billing" -->

<span ng-if="menu.gnb != &quot;billing&quot;" ng-bind-html="menu.translationId | translate" class="ng-binding ng-scope">도구</span>

点击菜单“도구”后,我可以找到“키워드도구”的子菜单。这也是'키워드도구'的代码。

<li ng-repeat="submenu in menu.items track by $index" ng-class="{ divider: submenu === &quot;divider&quot;, disabled: submenu.disabled }" class="ng-scope"><!-- ngIf: submenu.disabled --><!-- ngIf: submenu !== "divider" && !submenu.disabled --><a ng-if="submenu !== &quot;divider&quot; &amp;&amp; !submenu.disabled" data-click-logger="" data-click-id="click.tool.keyword-planner" href="/customers/668860/tool/keyword-planner" ui-sref="tool.keyword-planner(vm.getParams({customerId: customerId}, submenu.params))" ui-sref-opts="{reload: submenu.reload}" ng-bind-html="submenu.translationId | translate" class="ng-binding ng-scope">키워드 도구</a><!-- end ngIf: submenu !== "divider" && !submenu.disabled --></li>
<!-- ngIf: submenu.disabled -->
<!-- ngIf: submenu !== "divider" && !submenu.disabled -->
<a ng-if="submenu !== &quot;divider&quot; &amp;&amp; !submenu.disabled" data-click-logger="" data-click-id="click.tool.keyword-planner" href="/customers/668860/tool/keyword-planner" ui-sref="tool.keyword-planner(vm.getParams({customerId: customerId}, submenu.params))" ui-sref-opts="{reload: submenu.reload}" ng-bind-html="submenu.translationId | translate" class="ng-binding ng-scope">키워드 도구</a>

最佳答案

点击도구,你可以试试这个代码:

wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(),'도구')]")))
element.click()

在此之后如果你想向下滚动:

driver.execute_script("window.scrollTo(0, Y)")  

请注意,Y 是全高清显示器上的高度,它是 1080

并且您可以使用与 xpath 相同的文本方法来选择/单击网络元素。

建议在开发工具中检查定位器,以确保您拥有唯一的定位器。

导入你需要:

from selenium.webdriver.support import expected_conditions as EC

希望这对您有所帮助。

关于javascript - python网络爬虫错误'没有这样的元素: Unable to locate element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51931812/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com