Python Selenium:在下拉菜单中单击选项时可以更改值吗?

时间:2015-12-23 08:09:00

标签: javascript python selenium setvalue

我使用python selenium进行一些搜索。在我查询的一个网页上,搜索对话框允许我通过下拉菜单指定我是否要搜索所有部分或特定部分。要选择哪个部分,该网站在弹出窗口中有一些单独的对话框,我可以点击一个部分,然后选择"此部分"在下拉菜单中,内部分配了所选部分的值。这是选择器在检查时的外观:

    <select ...>
      <option id="searchthissection" value="<sectionname>">Search only in this section</option>
      <option id="searchallsections" value="">Search in all sections</option>
    </select>

因此,外部弹出对话框设置了该值。 设置后,我按如下方式触发选项:

    webdriver.find_element_by_xpath("//select[@id='searchoption']/option[text()'Search only in this section']").click()

现在,我原则上可以使用selenium来打开选择弹出窗口,切换到它,找到该部分,单击,切换回来,然后选择选项&#34; searchthissection&#34;。但这非常低效,也因为弹出窗口缓慢加载并有多页选项可以切换。

我可以轻松列出/生成我想要的所有值。有没有办法在单击选项时直接设置值?我在考虑这样的事情:

    webdriver.find_element_by_xpath("//select[@id='searchoption']/option[text()'Search only in this section']").set_value('<sectionname>').click()

有什么想法吗? 非常感谢!

1 个答案:

答案 0 :(得分:0)

好的,我解决了。我做的是这个。 option=webdriver.find_element_by_xpath(...), webdriver.execute_script("arguments[0].value='<sectionname>';",option),然后通过向文本字段发送密钥来触发搜索,发送密钥ENTER(由于某种原因,option.click()不起作用)