[英]Python Selenium select a drop down option and hit submit
我已经专门尝试过一些示例,这些示例与该问题有关,但似乎没有用? 如果我缺少某些东西,有人可以指出我正确的方向吗? 我基本上只是想从下拉列表中选择“低”选项,然后点击“提交”。
<form action="#" method="POST">
<p>Security Level is currently <em>high</em>.<p>
<p>You can set the security level to low, medium or high.</p>
<p>The security level changes the vulnerability level of DVWA.</p>
<select name="security">
<option value="low">low</option><option value="medium">medium</option><option value="high" selected="selected">high</option>
</select>
<input type="submit" value="Submit" name="seclev_submit">
</form>
这是我的代码:
find_element_by_xpath("//select[@name='security']/option[@value='low']").click()
我已经尝试过以下几种方法来使“提交”按钮起作用:
driver.select_by_value("//select[@id='security']").click()
driver.find_find_element_by_name("submit").click()
有指针吗?
更新:
这似乎可行,但现在我无法确定为什么? 我添加了其他信息以转到新页面,然后这停止了工作?
driver.get('http://dvwa/security.php')
el = driver.find_element_by_name('security')
for option in el.find_elements_by_tag_name('option'):
if option.text == 'low':
option.click()
driver.find_element_by_name('seclev_submit').click()
select = Select(driver.find_element_by_xpath("//select[@name='security']"))
select.select_by_value("low")
#Check for XSS
driver.get('http://dvwa/vulnerabilities/xss_r/')
elem = driver.find_element_by_name("name")
elem.send_keys("<script>alert(document.cookie);</script>")
Select
是一个用于下拉菜单的类。 请尝试以下操作:
select = Select(driver.find_element_by_xpath("//select[@name='security']"))
select.select_by_value("medium")
或者您也可以按元素名称创建select
对象,例如:
select = Select(driver.find_element_by_name("security"))
有关更多详细信息,请转到此处
我让它工作了。...不是最干净的解决方案,但我发现它可以工作.....
driver.get('http://dvwa/security.php')
driver.implicitly_wait(15)
el = driver.find_element_by_name('security')
for option in el.find_elements_by_tag_name('option'):
if option.text == 'low':
option.click()
driver.implicitly_wait(15)
select = Select(driver.find_element_by_xpath("//select[@name='security']"))
select.select_by_value("low")
driver.implicitly_wait(15)
driver.find_element_by_name('seclev_submit').click()
driver.implicitly_wait(15)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.