Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Selenium和Python根据HTML从选项中选择值_Python_Selenium_Select_Selenium Webdriver_Display - Fatal编程技术网

如何通过Selenium和Python根据HTML从选项中选择值

如何通过Selenium和Python根据HTML从选项中选择值,python,selenium,select,selenium-webdriver,display,Python,Selenium,Select,Selenium Webdriver,Display,我试图更改下拉列表的值,在从标记和标记中选择值时遇到问题 这是我想更改的HTML 一 二 三 四 五 根据您提供的HTML,似乎标记包含样式属性,如显示:无。因此,您可以使用以下解决方案选择一个选项: from selenium.webdriver.support.ui import Select # other lines of code driver.find_element_by_name('frmSearch').find_element_by_id('searchByInput91

我试图更改下拉列表的值,在从
标记和
标记中选择值时遇到问题

这是我想更改的HTML


一
二
三
四
五
根据您提供的HTML,似乎
标记包含样式属性,如显示:无。因此,您可以使用以下解决方案选择一个选项:

from selenium.webdriver.support.ui import Select
# other lines of code
driver.find_element_by_name('frmSearch').find_element_by_id('searchByInput91').click()
element = driver.find_element_by_xpath("//select[@class='m-tcol-c' and @id='searchBy']")
driver.execute_script("arguments[0].removeAttribute('style')", element)
select = Select(driver.find_element_by_xpath("//select[@class='m-tcol-c' and @id='searchBy']"))
select.select_by_value('1')

简单回答:你不能。这就是硒的全部意义所在。如果用户不能这样做(比如当元素被隐藏时),Selenium(按设计)不允许您这样做。表单在您单击文本输入字段后是否可见?它看起来就像您开始在textbox中键入某个值,然后开始显示下拉值作为建议。如果我错了,请纠正我?我不知道如何逐一回复每个评论,对不起。单击文本输入字段是什么意思?在我的例子中,当我单击下拉列表旁边的箭头图标时,我可以看到我可以选择的值。此外,当我用鼠标单击下拉列表时,HTML中的“类”将更改为。这会导致问题吗?这是处理隐藏元素的不正确方法。用户不会通过开发工具手动修改HTML DOM以使元素可见。对不起,您能为我将[find_element_by_id('searchByInput91')]更改为[find_element_by_class_name('seljs_title')]吗?我不知道如何编写“xpath”。非常感谢你的帮助。哦!它起作用了!!!!!!!我只是将“searchByInput91”更改为“searchByInput952”,当我输入时,它会一直更改。非常感谢。@Andersson你能告诉我为什么这个方法不合适吗?您的意思是“用户不会通过开发工具手动修改HTMLDOM以使元素可见。”?@Andersson,现在我明白了。谢谢你的支持。但是,如果不删除“Display:None”,我如何解决这个问题呢?。您回答的代码仅在“显示”时有效;“无”被删除。如果你有很多时间,你能告诉我怎么做吗?今天我从你那里学到了很多,谢谢。