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

无法使用Selenium和Python从下拉框中选择

戚星腾
2023-03-14

我真的很难从一个网站上的下拉菜单中选择一个项目。HTML的代码如下所示:

<select id="averagesMP" name="MP" onchange="reQuery(this);" style="width: 150px">
       <option value="" selected="selected"></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>
</select>

我已经尝试了我能想到的一切,并在StackOverflow上找到了!我注意到这似乎可以用来选择实际的下拉框:

select_mp = Select(driver.find_element_by_xpath("//select[@name='MP']")) 

但我认为这是可行的,因为代码运行时不会出现任何错误。但是,我仍然无法从下拉菜单中选择任何内容。我试过:

  • 通过xpath/name/id/tag/value/text查找元素
  • 选择\u mp。按值选择值('2')
  • 选择\u mp。按可见文本(“2”)选择“\u”
  • 选择\u mp。按索引选择索引(2)
  • 司机。通过xpath(//select[@name='MP']/option[@value='4'])查找元素。单击()
  • 司机。通过xpath(//option[@value='4'])查找元素。单击()
  • 司机。通过\u id('averagesMP')查找\u元素。单击()

有人有什么建议吗?我知道这个问题似乎在这里被问了很多,但我已经尝试了我在帖子中看到的所有东西,但它不起作用!它看起来不像一个非常复杂的下拉菜单,只是非常难以捉摸。

一些有用的信息:

>

  • 我用的是Safari和SafariDriver

    我不断收到以下错误消息:

    raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.WebDriverException: Message: 
    
  • 共有1个答案

    呼延升
    2023-03-14

    选择

    >

  • 使用CSS\u选择器select\u by\u visible\u text()

    select = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select#averagesMP[@name='MP']"))))
    select.select_by_visible_text('2')
    

    在一行中使用XPATH按值选择值()

    Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//select[@id='averagesMP' and @name='MP']")))).select_by_value('2')
    

    注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.ui import Select
    

  •  类似资料:
    • 你好,我正在使用selenium,并且已经成功地设置了id历史的文本字段,但是无法从

    • 问题内容: 我想从下拉选项中选择一个值。html如下: 我尝试如下: 怎么了 请帮我! 问题答案: 阿德里安Ratnapala是正确的,也是我会选择过,所以你可以尝试以下方法: 要么 要么 您可以使用: 单击此处以获取更多信息。

    • 我想使用硒从选择字段中选择一个选项 HTML格式如下: 我尝试了以下方法: 我收到了这个错误: 硒。常见的例外情况。NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:”//*[@id=“Enable”]/option[value=“0”]}

    • 我通常使用这个新的Select(driver.findElement(by.id(“title”)).selectByVisibletExt(“mr”);这个效果很好。 我正在移动一个更多的页面工厂的方法我定义了WebElement

    • 我试图从下拉菜单中选择一个选项,然后单击“搜索”,但我无法获得“选择”标签。 我抓取的HTML如下: 我想选择的选项是: 我使用的代码如下: 所以,我试图以不同的方式获得“选择”标签,我得到了不同的问题。 例如: 第一次尝试) 我得到: 第二次尝试) 我得到: 第三次尝试) 我得到一个空列表: 第 4 次尝试) 我得到一个空列表: 第5次尝试) 我得到: 有人知道如何解决这个问题吗?提前感谢!

    • 我想从下面的列表中选择一个使用selenium的选项: 这里 但问题是没有列表可供选择。 在此输入图像说明 我到目前为止的代码: 需要帮助!!