How can I do a select in a list of elements with some attributes in equal. This is simple, like a query in SQL:
First you have to create a enumerable of WebElements:
Enumerable<WebElement> list = from item in bsaNavigator.FindElements(By.TagName(“span“)).ToList() // the list of elements are span or td, or whatever you want. With Xpath, or id… you will decide .
where item.GetAttribute(“class“).Contains(“rmText“) && item.Text.Equals(“TextElement“.ToString()) //this is the condition that you will make, like every elements of span who have the attribute of the class have contains the text “rmText” and the Text is equals a something you need.
select item; // select the item with the conditions
WebElement Element = list.FirstOrDefault(); // catch the first element of the list with selects.
Element.Click(); // the action or whatever you want do with the element.
Simple and very usefull !!
Bye bye !
Do you need simulate a context click (right-click) in some element ?
With the lib actions is simple. First you need import the actions of java and after
Actions actions = new Actions(driver); //Instance the Actions
WebElement Element = driver.findElement(By.id(“ID“)); // find the element and put is in a variable
actions.ContextClick(Element).Perform(); // position the mouse over the element and context click it.
Just this, in some cases you have put a speed more lower or a wait element os something like that to work well.
Bye bye !!
Two different ways for find a element of a list in a page with WebDriver:
To find a element that inside in a span css and contains some text, you can use the lambda and catch the array for this elements:
> Lambda expression
bsaNavigator.FindElements(By.TagName(“span“)).Where(o => o.Text == “@Text“).ToList()
Or you can select the element, like SQl expression, remember of change the variables and the type of the source (span, div, table, tr and others). @Text is the variable that you will search in this span elements .
var spans = from p in bsaNavigator.FindElements(By.TagName(“span“)) where p.Text == “@Text” select p;
Do you have some doubt ? You can ask me in the comments !
Bye bye 🙂