如何使用 Selenium 和 Python 单击文本为(全选)的下拉项

2024-04-02

编辑:关于这个page https://i.stack.imgur.com/mdjih.png,我正在尝试提交从数据库生成的报告的参数。我已经能够为 send_keys() 发送第一个字段的新开始日期。第二个字段(结束日期)保持不变。对于第三个字段及之后的字段(除第一个字段外),我需要单击(Select All).

我需要点击(Select All),仅在单击父级“divDropDown”后才显示在隐藏的下拉表中。激活后,此隐藏表会显示一个 tbody,其中 5-6 个 tr/td/span 集保存各种选项。您可以在 id 下找到全选选项ctl31_ctl04_ctl07_divDropDown_ctl00.
在 HTML 的更上方,有一个 dropDownButton ,它不会在代码中生成错误(前 2 行),但也不会像手动那样在浏览器上显示为激活该下拉菜单,所以我认为它没有帮助这里。

我搜索了相关答案,并尝试了 Selenium 中的各种代码(等待、execute_script 等)来访问此项目,甚至尝试切换到其上方的 iframe(似乎在单击输入区域时激活,尽管寻找的元素在它之外),但仍然出现错误“无法找到元素...” 以下是尝试过的各种代码:

driver.find_element_by_xpath('//*[@id="ctl31_ctl04_ctl07"]')#.click()
driver.find_element_by_xpath('//*[@id="ctl31_ctl04_ctl07_ddDropDownButton"]').click()

#driver.find_element_by_xpath('//*[@id="ctl31_ctl04_ctl07_divDropDown"]').click()
#driver.execute_script("event.cancelBubble=true;")
#driver.execute_script("arguments[0].click();", elem)
#driver.find_element_by_xpath('//*[@id="ctl31_ctl04_ctl07_divDropDown_HiddenIndices" and @type="hidden"]')

#elem1 = driver.find_element_by_xpath('//*[@id="ctl31_ctl04_ctl07_divDropDown_ctl00" and @type="checkbox"]')#.click()
elem1 = driver.find_element_by_xpath('//*div[@id="ctl31_ctl04_ctl07_divDropDown"]/.//span[@id="ctl31_ctl04_ctl07_divDropDown_ctl00"]').get_attribute("innerHTML")
driver.execute_script("arguments[0].click();", elem1)
selector = '#ctl31_ctl04_ctl07_divDropDown_ctl00'
selector = '#ctl31_ctl04_ctl07_divDropDown > span > div:nth-child(1) > table > tbody > tr:nth-child(1) > td > span > label'
path = '//*[@id="ctl31_ctl04_ctl07_divDropDown"]/span/div[1]/table/tbody/tr[1]/td/span/input'#label'
#path = '//*[@id="ctl31_ctl04_ctl07_divDropDown_ctl00"]'
#driver.find_element_by_css_selector(selector).click()
driver.find_element_by_xpath(path).click()

我相信它无法找到元素,因为它通常是隐藏的,但无论我如何尝试单击或执行下拉菜单,通过按钮或单击 div,它都不会保持打开状态(我有时会看到它闪烁,它只是重新关闭,因此表格及其下拉列表再次隐藏)。我还尝试了以下代码来测试它。使用常规等待命令,经过一些迭代后我会收到“陈旧元素”错误。没有任何等待,我就会得到 element not find 。通过“等到”,我可以看到下拉列表向上/向下移动,但当它可见时似乎无法捕获“全选”?所有这一切都是用我的打印语句打开/关闭下拉列表以查看何时(在打印“检查是否存在”之后)。我也尝试过直接执行“全选脚本”"$get('ctl31_ctl04_ctl07').control.OnSelectAllClick(this);"无济于事。

def check_exists_by_xpath(xpath):
    try:
        driver.find_element_by_xpath(xpath)
    except NoSuchElementException:
        return False
    return True

for i in range(15):
    #driver.implicitly_wait(1000)
    #driver.find_element_by_xpath('//*[@id="ctl31_ctl04_ctl07_ddDropDownButton"]').click()
    wait(driver, 1000).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="ctl31_ctl04_ctl07_ddDropDownButton"]'))).click()
    #elem = driver.find_element_by_xpath('//*[@id="ctl31_ctl04_ctl07_divDropDown_ctl00"]')
    print('checking if exists')
    if check_exists_by_xpath('//*[@id="ctl31_ctl04_ctl07_divDropDown_ctl00"]'):
        driver.find_element_by_xpath('//*[@id="ctl31_ctl04_ctl07_divDropDown_ctl00"]').click()
        print('did it!')
    else: print('past dropdown button %d' % i)
    i +=1

这是 HTML(这是一个登录网站,所以我不能显示太多其他内容,抱歉图片:html https://i.stack.imgur.com/FDuAs.png

<iframe id="ctl31_ctl04_ctl07_ctl01" onclick="event.cancelBubble=true;" onactivate="event.cancelBubble=true;" style="display:none;position:absolute;z-index:10;" src="javascript:'';" frameBorder="0" title="Borough: place holder" longdesc="Borough: place holder" Name="ctl31_ctl04_ctl07_ctl01"></iframe>
<div id="ctl31_ctl04_ctl07_divDropDown" onclick="event.cancelBubble=true;" onactivate="event.cancelBubble=true;" style="display:inline-block;border-color:DarkGray;border-width:1px;border-style:Solid;overflow:auto;background-color:window;display:none;position:absolute;z-index:11;">
    <span style="margin: 0px; background-color: window;"><div style="overflow: auto; width: 186px; height: 133px;">
            <table cellpadding="0" cellspacing="0" style="background-color:window;">
                <tbody>
                    <tr>
                        <td nowrap="nowrap">
                            <span>
                                <input id="ctl31_ctl04_ctl07_divDropDown_ctl00" type="checkbox" name="ctl31$ctl04$ctl07$divDropDown$ctl00" onclick="$get('ctl31_ctl04_ctl07').control.OnSelectAllClick(this);"><label for="ctl31_ctl04_ctl07_divDropDown_ctl00">(Select All)</label>
                            </span></td></tr>
                    <tr>
                        <td nowrap="nowrap"><span><input id="ctl31_ctl04_ctl07_divDropDown_ctl01" type="checkbox" name="ctl31$ctl04$ctl07$divDropDown$ctl01" onclick="$get('ctl31_ctl04_ctl07').control.OnValidValueClick(this, 'ctl31_ctl04_ctl07_divDropDown_ctl00');"><label for="ctl31_ctl04_ctl07_divDropDown_ctl01">MANHATTAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label></span></td></tr>
                    <tr>
                        <td nowrap="nowrap"><span><input id="ctl31_ctl04_ctl07_divDropDown_ctl02" type="checkbox" name="ctl31$ctl04$ctl07$divDropDown$ctl02" onclick="$get('ctl31_ctl04_ctl07').control.OnValidValueClick(this, 'ctl31_ctl04_ctl07_divDropDown_ctl00');"><label for="ctl31_ctl04_ctl07_divDropDown_ctl02">BROOKLYN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label></span></td></tr>
                    <tr>
                        <td nowrap="nowrap"><span><input id="ctl31_ctl04_ctl07_divDropDown_ctl03" type="checkbox" name="ctl31$ctl04$ctl07$divDropDown$ctl03" onclick="$get('ctl31_ctl04_ctl07').control.OnValidValueClick(this, 'ctl31_ctl04_ctl07_divDropDown_ctl00');"><label for="ctl31_ctl04_ctl07_divDropDown_ctl03">QUEENS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label></span></td></tr>
                    <tr>
                        <td nowrap="nowrap"><span><input id="ctl31_ctl04_ctl07_divDropDown_ctl04" type="checkbox" name="ctl31$ctl04$ctl07$divDropDown$ctl04" onclick="$get('ctl31_ctl04_ctl07').control.OnValidValueClick(this, 'ctl31_ctl04_ctl07_divDropDown_ctl00');"><label for="ctl31_ctl04_ctl07_divDropDown_ctl04">BRONX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label></span></td></tr>
                    <tr>
                        <td nowrap="nowrap"><span><input id="ctl31_ctl04_ctl07_divDropDown_ctl05" type="checkbox" name="ctl31$ctl04$ctl07$divDropDown$ctl05" onclick="$get('ctl31_ctl04_ctl07').control.OnValidValueClick(this, 'ctl31_ctl04_ctl07_divDropDown_ctl00');"><label for="ctl31_ctl04_ctl07_divDropDown_ctl05">STATEN&nbsp;ISLAND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label></span></td></tr>
                </tbody>
            </table>
            <input type="hidden" name="ctl31$ctl04$ctl07$divDropDown$HiddenIndices" id="ctl31_ctl04_ctl07_divDropDown_HiddenIndices" value="">
        </div>
        <div style="height: 16px; width: 100%; margin: 0px; border-top: 1px solid lightgray; background-color: window; direction: ltr;"></div>
    </span>
</div>


网页如下所示:page https://i.stack.imgur.com/mdjih.png

有任何想法吗?


单击文本为的下拉选项(全选)因为元素是JavaScript https://www.javascript.com/您需要诱导的启用元素WebDriver等待为了想要的元素可点击您可以使用以下解决方案:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[contains(@id, '_divDropDown') and contains(@onclick, 'cancelBubble')][contains(@onactivate, 'cancelBubble')]"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[contains(@id, '_divDropDown') and contains(@onclick, 'cancelBubble')][contains(@onactivate, 'cancelBubble')]/span/div/table/tbody/tr/td/span//label[contains(@for, '_divDropDown_') and contains(., '(Select All)')]"))).click()

Note:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Selenium 和 Python 单击文本为(全选)的下拉项 的相关文章

随机推荐

  • Qt 忽略 makefile、.pro.user 文件

    我开发基于 Qt 的项目并使用 Mercurial 存储库 bitbucket org 服务 进行版本控制 每次我在存储库中提交时 都会有一些文件仅包含标头中的日期时间更改 因此 每次提交我都应该检查每个文件是否有重大更改 而不仅仅是时间戳
  • Mongoose / MongoDB - 在一条指令中更新具有不同 _id 和值的多个文档

    我正在寻找一种在一条指令中更新多个 MongoDB 文档的方法 我知道有一个 updateMany 查询 但它需要严格的过滤参数才能更新多个文档 我有一组想要更新的对象 如下所示 const objectsToUpdate id 1 fie
  • Angular 6:如何访问 mat-autocomplete 下拉列表中的所有选项值?

    给出 Angular 文档中的示例你可以在这里看到 https material angular io components autocomplete overview setting separate control and displa
  • 对仅包含 a-z 和空格的单词数组进行排序的最快方法是什么?

    我想知道是否有比快速排序 合并排序更快的方法来对此类数组进行排序 数组的最大长度为 10 6 单词的长度 gt 10 且 您可以将所有单词放在一个trie http en wikipedia org wiki Trie or a 基数树 h
  • 缺少值组合的完整数据框

    我有一个包含两个因素的数据框 distance 和年份 years 我想完成所有years每个因子的值均除以 0 即由此而来 distance years area 1 NPR 3 10 2 NPR 4 20 3 NPR 7 30 4 10
  • 如何清除Java 9 JShell控制台?

    我没有找到任何清除 Java 9 JShell 控制台的命令 我也尝试通过这个程序清除JShell控制台 但它也不起作用 import java io IOException class CLS public static void mai
  • Android - 如何从 kotlin 流中读取值?

    我有来自房间数据库的剧集流程 我可以毫无问题地观察该流程的实时数据 但我还想在用户单击按钮时读取此流程中的最后一个值 我尝试使用first 终端流运算符 但它无法编译 您能帮忙或提出其他建议吗 非编译尝试从流中读取 bd buttonNex
  • 将上下文传递给自定义挂钩或在自定义挂钩内调用 useContext 更好吗?

    我有越来越多的自定义挂钩 其中许多通过以下方式访问相同的反应上下文useContext钩 在许多组件中 需要使用多个自定义挂钩 打电话比较好吗useContext每个组件一次并将上下文传递到我的自定义挂钩中 还是最好调用useContext
  • 如何删除/取消注册 GitLab 运行程序

    几个月前我注册了一个个人 GitLab 运行器 但我不再使用它 如何完全删除它 使其不会显示在我的 GitLab CI CD 设置页面上 列出跑步者以获取他们的令牌和 URL sudo gitlab runner list 使用指定运行者令
  • Android 10.0 应用程序在 BOOT 上启动

    我们有一个 Android 应用程序 我们打算在手机启动期间启动 启动 通过在 Android 10 中尝试一些代码 我们意识到在 Android 8 0 之后无法在启动时启动应用程序 以前在 Android 6 中 这是可能的 即使在物理
  • Heroku Dynos 是否享受 AWS 网络内的免费数据传输?

    我正在考虑将 Heroku 用于 NodeJS 应用程序 我想知道他们的 Dynos 是否享受 AWS 网络内的免费内部数据传输 我想使用 DynamoDB ElastiCache RDS SQS 和许多其他 AWS 产品 如果我可以从 H
  • 如何使用 OpenXML 查找段落中的页码?

    For a 段落对象 如何使用 Open XML SDK 2 0 for Microsoft Office 确定该对象位于哪个页面 使用以下方法无法获取 Word 文档的页码OpanXml Sdk因为这是由客户端处理的 例如 MS Word
  • 推送 UIView 时隐藏 UITabBar

    我有一个UITabBarController其中默认视图控制器是UINavigationController 当我在视图中推送某个视图时 我希望能够隐藏 UITabBarController 的 UITabBarUINavigationCo
  • 如何获取任务的结果或返回值?

    有人可以向我解释如何返回任务的结果吗 我目前正在尝试执行以下操作 但我的任务没有返回我期望的列表 这里有什么问题 static void Main List
  • 无法读取 null 的属性“props” - Reactjs [重复]

    这个问题在这里已经有答案了 基本上我想在子组件中调用父组件的函数 该函数将更改父组件的状态 我在父组件中创建了一个处理程序并将其作为道具传递给子组件 现在我想在子组件中调用它 Parent state formstep 1 construc
  • 如何覆盖 laravel 资源路由默认方法?

    我的 REST API url 具有以下架构 Verb Url Method GET tasks findAll GET tasks id findOne POST tasks create PUT tasks id update DELE
  • 读取行期间的 Source.fromInputStream 异常处理

    我创建了一个函数 其中接受输入流作为参数并返回由字符串组成的迭代器 我按如下方式完成此操作 def lineEntry fileInputStream InputStream Iterator String Source fromInput
  • Common Lisp 中的(随机)不那么随机?

    好的 最后一个问题 我将用 Common Lisp 完成我的猜数游戏 D 每当游戏开始 或者在第一个游戏之后开始新游戏 时 都会调用以下函数 Play the game defun play If it s their first time
  • Symfony v4、php bin/console 无法按预期工作。自动中止[重复]

    这个问题在这里已经有答案了 我刚刚在我的新 SSD 上安装了 Composer php apache 等 之后我想开始编码 我从 IDE 中的另一个驱动器打开了我的项目 然后我想将我的灯具加载到我的新数据库中 但我不能 我什至无法进行迁移等
  • 如何使用 Selenium 和 Python 单击文本为(全选)的下拉项

    编辑 关于这个page https i stack imgur com mdjih png 我正在尝试提交从数据库生成的报告的参数 我已经能够为 send keys 发送第一个字段的新开始日期 第二个字段 结束日期 保持不变 对于第三个字段