当前位置: 首页 > 知识库问答 >
问题:

无法使用python Selenium选择下拉菜单

姚昊焱
2023-03-14

你好,我正在使用selenium,并且已经成功地设置了id历史的文本字段,但是无法从中的下拉菜单中选择选项。

<div class="section section--green">
    <div class="forms">
        <div class="form">
            <div class="form__fields form__fields--widthAuto">
                <div class="form__field">
                    <div class="form__field__label">SEARCH BY DATE</div>
                    <div class="form__field__text">
                        <input type="text" name="date" autocomplete="new-password" id="historicalDatePicker" data-latest="1577448902000">
                    </div>
                </div>
                <div class="form__field">
                    <button class="form__button" id="historicalSearchBtn">SEARCH</button>
                </div>
                <div class="form__field"></div>
                <div class="form__field"></div>
            </div>
        </div>
        <div class="form__ruler form__ruler--vertical"></div>
        <div class="form">
            <div class="form__fields form__fields--widthAuto">
                <div class="form__field">
                    <div class="form__field__label">SEARCH BY SYMBOL</div>
                    <div class="historical__search autocomplete">
                        <input id="historicalSymbolSearch" autocomplete="new-password" type="text" placeholder="Search for symbols or company"><i class="icon-search"></i></div>
                </div>
                <div class="form__field">
                    <div class="form__field__label"> </div>
                    <div class="dropdown historical__month">
                        <select class="dropdown__select" name="sector">
                            <option value="">Month</option>
                            <option value="1">January</option>
                            <option value="2">February</option>
                            <option value="3">March</option>
                            <option value="4">April</option>
                            <option value="5">May</option>
                            <option value="6">June</option>
                            <option value="7">July</option>
                            <option value="8">August</option>
                            <option value="9">September</option>
                            <option value="10">October</option>
                            <option value="11">November</option>
                            <option value="12">December</option>
                        </select>
                    </div>
                </div>
                <div class="form__field">
                    <div class="form__field__label"> </div>
                    <div class="dropdown historical__year">
                        <select class="dropdown__select" name="sector">
                            <option value="">Year</option>
                            <option value="2019">2019</option>
                            <option value="2018">2018</option>
                            <option value="2017">2017</option>
                            <option value="2016">2016</option>
                            <option value="2015">2015</option>
                        </select>
                    </div>
                </div>
                <div class="form__field">
                    <button class="form__button" id="historicalSymbolBtn">SEARCH</button>
                </div>
            </div>
        </div>
        <div class="form__ruler form__ruler--vertical"></div>
        <div class="form">
            <div class="form__fields">
                <div class="form__field">
                    <div class="form__field__label"> </div><span> To download daily market summary, visit <br>  <a href="/daily-downloads" target="blank"><strong>Daily Downloads</strong></a> page.</span></div>
            </div>
        </div>
    </div>
</div>

我的Python代码是

from selenium import webdriver
from selenium.webdriver.support.ui import Select
chromedriver = "chromedriver.exe"
driver = webdriver.Chrome(chromedriver)
driver.get("https://dps.psx.com.pk/historical")


textField = driver.find_element_by_id("historicalSymbolSearch")
textField.send_keys('DWAE')

select = Select(driver.find_element_by_xpath("//select[@name='sector']"))
# all_options = select.find_elements_by_tag_name("option")

任何帮助?


共有1个答案

汪学真
2023-03-14

您可以使用以下xpath作为下拉列表:

 select = Select(driver.find_element_by_xpath("//div[@class='dropdown historical__month']//select[@class='dropdown__select']"))
 类似资料:
  • 问题内容: 我想知道是否有可能让jQuery 在下拉框中选择,例如第4个项目? 我希望用户单击一个链接,然后让该框更改其值,就像用户通过单击来选择它一样。 问题答案: 怎么样 对于现代版本的jquery,应使用代替

  • 问题内容: 我试图使用AngularJS创建一个链接/级联的下拉列表(选择元素),但是我很难用我的对象属性过滤和更新“ selected”属性。 首次加载页面时,所选项目将被过滤并正确显示在下拉菜单中。更改父级下拉菜单后,子级选择项不会抓住已过滤列表中的第一个项,导致子级下拉项不会更新。 任何见解将不胜感激,请注意,我将父/子/孙子数组分开(而不是在子数组中),因为最终我将从SQL中的单独spoc

  • 我是使用selenium ide的新手。 我已经让我的代码的所有其他部分工作。 但是我目前有一个问题,让它在下拉菜单中选择一个选项。 我为下拉列表和

  • 我想让木偶演员从下拉框中选择使用: await Page.Select(选择器,值); 这里是方法,如何我想要得到的选项。 等待页面。选择('#dropdown','//select[@id=“dropdown”]//option[contains(@value,“xxa1”)]'); puppeteer中的“values”可能不能替换为xpath参数。CMIIW.但我能用另一种方法解决吗? 任何

  • 问题内容: 我需要从下拉菜单中选择一个元素。 例如: 1)首先,我必须单击它。我这样做: 2)之后,我必须选择一个好的元素,让我们说Mango。 我试图这样做,但是没有用。 问题答案: 除非你的点击触发了某种Ajax调用来填充列表,否则你实际上不需要执行该点击。 只需找到元素,然后枚举选项,然后选择所需的选项即可。 这是一个例子:

  • 嗨,我一直在做量角器测试,我的测试有问题。我的ionic应用程序确实有一个具有模型名称的下拉列表,我试图使用模型名称访问它,它可以工作,但问题是它无法选择我需要从该下拉列表选项中选择的确切选项。它只选择第一个?我这样写了量角器语法。 但是这段代码选择的不是值59,而是值0,这是默认选项。有人能帮我吗?