gpt4 book ai didi

python - 如何使用 Selenium 单击自定义 HTML 标记

转载 作者:行者123 更新时间:2023-11-28 18:58:03 24 4
gpt4 key购买 nike

我正在尝试从 sellercentral.amazon.de 下载几百个 excel 文件。正如我在上一篇文章中提到的,手动下载不是一种选择,因为我需要点击几次才能进入下载弹出窗口。

为此,我使用了 Python 和 Selenium。

问题

但是,要抓取的网站不仅仅包含按钮和链接,还包含自定义标签。其中之一是标签“浏览节点组件”,每个标签代表一个产品(子)类别。找到它没什么大不了的,但是点击它并没有被执行。需要点击才能通过类别导航到它的子节点,直到到达叶节点。然后图标从箭头变为“选择”(参见 imgur)。

到目前为止我试过的代码是:

elements = driver.find_elements_by_tag_name("browse-node-component")

for element in elements:

print("starting")

# Store element name
browse_node = element.find_element_by_class_name("browse-node-text")
browse_node = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, "browse-node-text")))

browse_node_button = element.find_element_by_class_name("a-button-input")
print ("done")
browse_node_button.click()

示例性“浏览节点组件”标签

    <span>
<div class="a-section a-spacing-none browse-node selected-node" ng-class="(nodeCtrl.node.hasChildren ? 'browse-node' : 'leaf-node') + ' ' + (nodeCtrl.isSelected ? 'selected-node' : '')" ng-click="nodeCtrl.node.hasChildren &amp;&amp; nodeCtrl.onBrowseChildren({node:nodeCtrl.node});">

<div class="browse-node-text ng-binding" style="">Auto &amp; Motorrad</div>

<div class="node-icon-btn-block">

<img class="loading-icon ng-hide" src="https://m.media-amazon.com/images/G/01/abis-ui/loading-small._CB192205764_.gif" ng-show="nodeCtrl.isLoading">
<div class="lock-icon ng-hide" ng-show="nodeCtrl.isGated"></div>
<div class="a-icon arrow-right browse-node-arrow" ng-show="nodeCtrl.node.hasChildren"></div>

<div class="select-button-ungated ng-hide" ng-show="!nodeCtrl.isGated &amp;&amp; !nodeCtrl.node.hasChildren" ng-click="nodeCtrl.onSelectNode({node:nodeCtrl.node})">
<span class="a-button a-button-base a-button-small select-button"><span class="a-button-inner"><input class="a-button-input" type="submit"><span class="a-button-text" aria-hidden="true">
Auswählen
</span></span></span>
</div>

<div class="gated-button ng-hide" ng-click="nodeCtrl.onRequestApproval({node:nodeCtrl.node})" ng-show="nodeCtrl.isGated &amp;&amp; !nodeCtrl.node.hasChildren">
<span class="a-button a-button-primary a-button-small select-button"><span class="a-button-inner"><input class="a-button-input" type="submit"><span class="a-button-text" aria-hidden="true">
Freischaltung beantragen
</span></span></span>
</div>

</div>
</div>
<span>
</span></span></browse-node-component>

结果

最后的输出是“完成”,然后脚本终止并出现以下消息:

Message: Element 'input class="a-button-input" type="submit"' could not be scrolled into view

但我不确定是否真的必须按下那个按钮。我按对了吗?如果是这样,我怎样才能做到不出错?

我想浏览这些类别,直到我到达一个子节点,然后按下它的选择按钮。但是我无法用我的代码显示顶级类别的子类别。请提示我必须单击哪个 html 元素。

有关图形信息,请参见此处:

Selenium 和 Python: image taken from https://imgur.com/a/8eWGz8s

用selenium打开实例时的页面: image taken from https://imgur.com/a/8eWGz8s

图片来源:https://imgur.com/a/8eWGz8s

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