WebDriver driver=new FirefoxDriver();
driver.get("https://login.salesforce.com/");
Select selectname = new Select(driver.findElement(By.xpath("html/body/div[5]/div[2]/div[3]/div[2]/div/div[2]/div/div[4]/div/div[1]/div/div/div[1]/div[2]/div/div/div/div/div/div/div/a"))));
selectname.selectByIndex(2);
在这里,我通过使用firebug和firepath找到xpath 它显示了潜在客户下拉列表的火道
**我也尝试采用偏xpath但是每次显示不同的xpath时,所以我继续使用absoulte xpath
答案 0 :(得分:0)
Select
只能用于<select>
代码。
如果要对<a>
元素执行select,则必须创建一个变通方法。
解决方法如下所示:
示例:
WebElement dropdown = driver.findElement(By.xpath("//a[contains(text(), ''--None--')]"));
dropdown.click();
WebElement value = driver.findElement(here insert locator for displayed value in dropdown list);
value.click();
评论的答案:
首先,您需要知道您的值具有哪个标记。是<div>
吗?是<li>
吗?
然后,您可以通过XPath
按可见文字搜索值。让我们假设它是<div>
WebElement myDesiredValue = driver.findElement(By.xpath("//div[contains(text(), 'value text')]"));
myDesiredValue.click();
如果要在不查找特定值的情况下单击所需索引,则必须使用findElements()
方法。取决于HTML,您必须提供一个选择器,选择所有值,如下所示:
List<WebElement> allValues = driver.findElements(my locator);
allValues.get(0).click() //0 is first value OR current selected value in dropdown. So, selecting the 2nd index would be more like allValues.get(1).click();
答案 1 :(得分:0)
使用xpath找到下拉列表,然后找到值
WebElement dropdown_arrow = driver.findElement(By.xpath("//a[(text()='--None--')]"));
dropdown_arrow.click();
WebElement dropdown_value = driver.findElement("Locator value");
dropdown_value.click();
您也可以使用此xpath下拉
WebElement dropdown_arrow = driver.findElement(By.xpath("//a[@class='select'][(text()='--None--')]"));
dropdown_arrow.click();
WebElement dropdown_value = driver.findElement("Locator value");
dropdown_value.click();