我是Python和Selenium的新手,尝试自动填写表单并获得游戏礼物。
这是一个html,它使用列表项而不是select标记。
<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>脚本可以单击下拉菜单,但不能选择任何列出的项目。

我尝试了以下方法,但都不起作用。
# dropdown = Select(select_server)
# dropdown.select_by_visible_text('Conquest(US)')
# dropdown.select_by_index('4')我的代码:
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')感谢您的帮助,谢谢。
发布于 2021-09-16 22:34:57
你可以试试这个
driver.find_element_by_xpath("//ul[@data-type='server']/li[text()='Conquest(US)']").click()https://stackoverflow.com/questions/69215764
复制相似问题