I am trying to iterate into multiple drop-down boxes and select value in each one of them, now the drop-down boxes are variable, is there a way to do that, I tried this:
IList<SelectElement> allDropDowns = mydrive.FindElements(By.CssSelector
(".custom-select.fileType.form-control"));
After working on it, I got the solution (or atleast it works !)
IList<IWebElement> allDropDowns = mydrive.FindElements
(By.CssSelector(".custom-select.fileType.form-control"));
Then assign each list item to SelectEelement
SelectElement selectFileType = new SelectElement(allDropDowns[index]);
Related
I am new to Python and trying to figure out how to call an item from the drop down list. I managed to make it visible with this code.
price_point = driver.find_elements_by_class_name("chosen-single")
price_point[0].click()
I cannot use Select.
The list is open and visible now But I am not able to click the items inside the list. Any ideas?
Your help is much appreciate!
Access the list item directly and click on it. Here is the sample
driver.find_element_by_xpath("//select[#class='chosen-single']//option[normalize-space(.)='here goes your list item text']").click()
if you have more than one list boxes with class "chosen-single" then use the below to select the item from first list box.
driver.find_element_by_xpath("(//select[#class='chosen-single'])[1]//option[normalize-space(.)='here goes your list item text']").click()
I am trying to build a GUI with a dropdown for multi-select in python, PyQT5 but, the display is only showing single item instead of a dropdown. Is there a way to include the options as a drop down ?
QlistWidget has the setSelectionMode: QListWidget and Multiple Selection
But the combobox does not seem to have it. And I don't remember seeing a combobox with multi selection on.
No, you can't select multiple item from a QComboBox instance. It can be used to select only one item at once. If you want to have multiple selection in your widget have to use a QListView/Widget.
I have a list view with two columns and I'd like to be able to save the value of the leftmost column for the selected row, or even better make it so that once the user clicks on either the right or left column of any given row, the entire row selects and not only the field that was clicked.
However I'm struggling to get the field saved which is more crucial than the row highlighting.
In a list box it would be
string = listbox1.selecteditem.tostring
However this doesn't seem to work for the list view. It won't even let me put "Selecteditem" and instead requires I put selecteditems, however this doesn't seem to do what I want either.
When I use the code:
string = ListView1.SelectedItems.ToString
I get the result of
string = "System.Windows.Forms.ListView+SelectedListViewItemCollection"
Despite the selected field actually being "EGG".
I need to have two columns so can't switch to using a listbox, although that seems like it would be the easier solution.
When I tried googling this question I could only find things for C#
Set FullRowSelect on to get the entire row to select.
SelectedItems.ToString refers to the collection of selected items.
SelectedItems(0).Text refers to the first selected item's text property.
Using Selenium Webdriver (Java)
I need to verify that a selected value from a dropdown menu is saved when a user returns to that page in another session.
The dropdown is simple, it just changes the number of records displayed per page after a search.
The values are 5, 10, 25, 50 and 100.
Using getText() simply returns the values in the array. I need to verify that if a user chooses, say, 25, that that value is the same when returning to this particular page. A simple assert statement doesn't work here because the value "25" can be present in other fields.
I've also tried various uses of Select without success.
I'd appreciate any suggestions. If I've missed any key information, feel free to point it out and I will update the post.
You need to use Select class
IWebElement selectElement = driver.FindElement(By.Id("id"));
SelectElement selectedValue = new SelectElement(selectElement);
string selectedText = selectedValue.SelectedOption.Text;
Mine written in C#. But Java is fairly close as well.See this
EDIT:
you should be using getFirstSelectedOption().getText() instead of SelectedOption.Text; according to the api doc
checkout the following answer
Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));
WebElement option = select.getFirstSelectedOption()
-- This will give the selected option in dropdown
Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));
WebElement option = select.getFirstSelectedOption()
String SelectedText = option.getText();
Having issue in selecting drop down element under the following website
http://flights.makemytrip.com/makemytrip/fareCal.do?intid=NewHP_to_DF_FC_Menu
I'm unable to select any one of the cities listed below.
Please help me out resolving the same.
Scenarios Tried
driver.findElement(By.className("chzn-single")).click();
driver.findElement(By.xpath("//span[contains,'NewDelhi']")).click();
driver.findElement(By.xpath("//span[#id='fromcity_chzn']")).click();
This works:
WebElement leavingFrom = driver.findElement(By.xpath("//*[#id='fromcity_chzn']/a"));
WebElement goingTo = driver.findElement(By.xpath("//*[#id='tocity_chzn']/a"));
leavingFrom.click();
leavingFrom.sendKeys("Bangalore");
leavingFrom.sendKeys(Keys.RETURN);
goingTo.click();
goingTo.sendKeys("Goa");
goingTo.sendKeys(Keys.RETURN);
Here is working sample:
//First get main dropDowns
var leavingFromDropDown = driver.FindElement(By.Css("#fromcity_chzn"));
var goingToDropDown = driver.FindElement(By.Css("#tocity_chzn"));
//Select value from first dropDown using dropDown items index
//First click on dropDown to open it
leavingFromDropDown.click();
//Now find items in it and click on any item using it's index (also can be used method to access this elements using their names
leavingFromDropDown.FindElements(By.Css(".active-result"))[1].click();
//this dropDown closes automatically, but if not you need to click on it again to close
//Same perform with second element
goingToDropDown.click();
goingToDropDown.FindElements(By.Css(".active-result"))[2].click();
If you want to use input box to enter any value from DropDown you need to find that element and using sendKeys set it's value. E.g.:
leavingFromDropDown.click();
var input = leavingFromDropDown.FindElement(By.Css(".chzn-search > input"));
input.sendKeys('Goa');
input.sendKeys(Keys.Enter);//or tab