首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Selenium -如何在不使用select标签的情况下从下拉列表中单击和选择项目

Python Selenium -如何在不使用select标签的情况下从下拉列表中单击和选择项目
EN

Stack Overflow用户
提问于 2021-09-16 22:15:32
回答 1查看 34关注 0票数 0

我是Python和Selenium的新手,尝试自动填写表单并获得游戏礼物。

这是一个html,它使用列表项而不是select标记。

代码语言:javascript
复制
<tr>
                <th>Server Name</th>
                <td>
                    <!-- toDev liのdata-value属性に設定して頂いた値が下のhiddenに入ります。 --> <input
                    type="hidden" name="server" class="js-selected-server">
                    <ul class="serialForm__select js-select-form" data-type="server">
                        <li><span class="js-selected-text">Select Server</span>
                            <div class="serialForm__select--btn">
                                <img class="iconArrow" data-type="primary"
                                    src="/img/nav/nav_arrow01.svg"> <img class="iconArrow"
                                    data-type="secondary" src="/img/nav/nav_arrow02.svg">
                            </div></li>
                        <li data-value="1">Orchard(KOR)</li>
                        <li data-value="2">Dynasty(CHN)</li>
                        <li data-value="3">Warlord(SEA)</li>
                        <li data-value="4">Conquest(US)</li>
                        <li data-value="5">Invincible(JP)</li>
                        <li data-value="6">Inferno(TW)</li>
                        <li data-value="7">Ascension(KOR)</li>
                    </ul>
                </td>
            </tr>
            <tr>

脚本可以单击下拉菜单,但不能选择任何列出的项目。

我尝试了以下方法,但都不起作用。

代码语言:javascript
复制
# dropdown = Select(select_server)
# dropdown.select_by_visible_text('Conquest(US)')
# dropdown.select_by_index('4')

我的代码:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.support.select import Select

import time

edge_options = {
    "executable_path": "/edgedriver_mac64/msedgedriver",
    # ofcourse change path to driver you downloaded.
    "capabilities": {
        "platformName": 'mac os x',  # I get this from Chrome driver's capabilities
        # "os" : "OS X", # also ok.
    }
}
browser = webdriver.Edge(**edge_options)
browser.get('https://kstory.hangame.com/en/index')

time.sleep(2)

select_server = browser.find_element_by_css_selector(
    "span[class='js-selected-text']")

time.sleep(2)
select_server.click()


## below are still testing, not working yet 
select_server.send_keys('Conquest(US)')    
# dropdown = Select(select_server)
# dropdown.select_by_visible_text('Conquest(US)')
# dropdown.select_by_index('4')

感谢您的帮助,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-16 22:34:57

你可以试试这个

代码语言:javascript
复制
driver.find_element_by_xpath("//ul[@data-type='server']/li[text()='Conquest(US)']").click()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69215764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档