gpt4 book ai didi

python - Selenium (Python) 中的路径选择不起作用

转载 作者:行者123 更新时间:2023-12-01 00:16:39 26 4
gpt4 key购买 nike

所以我一直在尝试在 Python 中使用 Selenium 在充当列表过滤器的下拉菜单上选择一些值。我编写的代码和相关的 xml 如下。


<div id=“example_wrapper” class=“dataTables_wrapper”>
<div id=“example_filler” class=“dataTables_filter”>…</div>
<div class=“column-filter-wdigets”>
<div class=“column-filter-widget col-lg-2”>
<select class=“form-control input-sm widget-2”>
<option value>Level</option>
<option value=“1”>1</option>
<option value=“2”>2</option>
<option value=“3”>3</option>
<option value=“4”>4</option>
<option value=“5”>5</option>
<option value=“6”>6</option>
<option value=“7”>7</option>
<option value=“8”>8</option>
<option value=“9”>9</option>
</select>
....
import requests, bs4, time
from selenium import webdriver
from selenium.webdriver.support.ui import Select

print("\n\n")

browser = webdriver.Firefox()
browser.get('https://www.dnd-spells.com/spells')
selector = "div.column-filter-widget.col-lg-2"

try:
time.sleep(5)
levelList = browser.find_element_by_css_selector(selector)
print(type(levelList))
levelList.click()
levelListSelector = Select(levelList)
levelListSelector.select_by_value('3')
except:
print("First: No matches :/ \n\n")


try:
selector = "div > select"
levelOptions = browser.find_element_by_css_selector(selector)
print(levelOptions.text())
except:
print("Second: No matches :/ \n\n")

问题是,虽然第一个选择器工作正常,但我看到下拉菜单列表打开,第二个选择器没有返回匹配项。我尝试了尽可能多的不同组合来获取该选择标签,从非常具体到非常通用,但没有任何效果。它总是说找不到匹配项。

在我束手无策的情况下,我决定看看如果我将其作为我所做的第一个选择,是否可以获得该选择标签。所以我将最顶部的选择器=“div.column-filter-widget.col-lg-2”更改为选择器=“div.column-filter-widget.col-lg-2 select”并注释掉第二次尝试/除了 block 。果然有效。但我不知道为什么。

有人能解释一下为什么会出现这种情况吗?我们不能从同一个 Web 驱动程序甚至子元素访问同一个元素两次吗?我已经到了可以继续做我想做的事情的地步,但我想了解这里的问题,以便我可以在将来学习并在需要时更好地处理它。谢谢。

最佳答案

文本是属性而不是函数,这就是您收到异常的原因。试试这个

 try:
selector = "div > select"
levelOptions = browser.find_element_by_css_selector(selector)
print(levelOptions.text)
except:
print("Second: No matches :/ \n\n")

关于python - Selenium (Python) 中的路径选择不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59290009/

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