通过 selenium 选择 javascript 下拉列表?
Selecting a javascript drop down via selenium?
下面是 javascript 下拉列表,我想通过 selenium webdriver 从中 select "All Resume" 选项:
<div id="resume_freshness_container">
<div class="dropdown_small_wrapper">
<div class="left">Last 6 Months</div>
<div class="right"><img class="clip_image" src="http://media.monsterindia.com/v2/recruiter/2.1/new_search/newlook_combined.png"></div>
<div class="clear_both"></div>
</div></div>
<script language="javascript">
jQuery(document).ready(function(){ createSingleSelectCombo({id:'selDay',valueVariableName:'day',tabindex:'62',label:"",preSelected:"180",replaceWithId:'resume_freshness_container',width:'216',heightOptions:'height:240px;overflow-y:auto',animateScroll:true,
options:[{id:'1',values:"in last 1 day"},
{id:'3',values:"in last 3 days"},
{id:'7',values:"in last 7 days"},
{id:'15',values:"in last 15 days"},
{id:'30',values:"in last 1 month"},
{id:'90',values:"in last 3 months"},
{id:'180',values:"in last 6 months"},
{id:'360',values:"in last 12 months"},
{id:'540',values:"in last 18 months"},
{id:'9999',values:"All Resumes"},
{id:'4-7',values:"4-7 days"},
{id:'8-15',values:"8-15 days"},
{id:'16-30',values:"16-30 days"},
{id:'31-90',values:"1-3 months"},
{id:'91-180',values:"3-6 months"},
{id:'181-360',values:"6-12 months"},
{id:'361-540',values:"12-18 months"},
{id:'541-9999',values:"Only older than 18 months"}
]});
borderTopSingleSelect({container:'resume_freshness_container',afterId:'10'});
});
</script>
我使用以下代码 select 下拉菜单,然后 select 所需选项:
Select select = new Select(driver.findElement(By.id("resume_freshness_container")));
select.deselectAll();
select.selectByVisibleText("All Resumes");
我也尝试过使用 id "selDay" 选择它,但两次它都给了我下面列出的相同异常
Exception in thread "main" org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been "select" but was "div"
*我是 selenium 的新手,所以请帮助我知道我哪里出错了 *
是的,你不能用 Select
class 来处理它 - 它专门用于 select->option
HTML 结构。
您需要先找到 id="selDay"
的元素,点击它,找到 "All Resumes" 文本的元素并点击它:
WebElement selDay = driver.findElement(By.id("selDay"));
selDay.click();
WebElement allResumes = selDay.findElement(By.xpath("//*[.=\"All Resumes\"]"));
allResumes.click();
下面是 javascript 下拉列表,我想通过 selenium webdriver 从中 select "All Resume" 选项:
<div id="resume_freshness_container">
<div class="dropdown_small_wrapper">
<div class="left">Last 6 Months</div>
<div class="right"><img class="clip_image" src="http://media.monsterindia.com/v2/recruiter/2.1/new_search/newlook_combined.png"></div>
<div class="clear_both"></div>
</div></div>
<script language="javascript">
jQuery(document).ready(function(){ createSingleSelectCombo({id:'selDay',valueVariableName:'day',tabindex:'62',label:"",preSelected:"180",replaceWithId:'resume_freshness_container',width:'216',heightOptions:'height:240px;overflow-y:auto',animateScroll:true,
options:[{id:'1',values:"in last 1 day"},
{id:'3',values:"in last 3 days"},
{id:'7',values:"in last 7 days"},
{id:'15',values:"in last 15 days"},
{id:'30',values:"in last 1 month"},
{id:'90',values:"in last 3 months"},
{id:'180',values:"in last 6 months"},
{id:'360',values:"in last 12 months"},
{id:'540',values:"in last 18 months"},
{id:'9999',values:"All Resumes"},
{id:'4-7',values:"4-7 days"},
{id:'8-15',values:"8-15 days"},
{id:'16-30',values:"16-30 days"},
{id:'31-90',values:"1-3 months"},
{id:'91-180',values:"3-6 months"},
{id:'181-360',values:"6-12 months"},
{id:'361-540',values:"12-18 months"},
{id:'541-9999',values:"Only older than 18 months"}
]});
borderTopSingleSelect({container:'resume_freshness_container',afterId:'10'});
});
</script>
我使用以下代码 select 下拉菜单,然后 select 所需选项:
Select select = new Select(driver.findElement(By.id("resume_freshness_container")));
select.deselectAll();
select.selectByVisibleText("All Resumes");
我也尝试过使用 id "selDay" 选择它,但两次它都给了我下面列出的相同异常
Exception in thread "main" org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been "select" but was "div"
*我是 selenium 的新手,所以请帮助我知道我哪里出错了 *
是的,你不能用 Select
class 来处理它 - 它专门用于 select->option
HTML 结构。
您需要先找到 id="selDay"
的元素,点击它,找到 "All Resumes" 文本的元素并点击它:
WebElement selDay = driver.findElement(By.id("selDay"));
selDay.click();
WebElement allResumes = selDay.findElement(By.xpath("//*[.=\"All Resumes\"]"));
allResumes.click();