Selenium how to select an object by class

2019-03-18 00:59发布

问题:

I have a web page with a form and has a field that uses the jquery autocomplete function.

This is how the HTML renders after a user name returns 1 or more results.

However I cannot figure out how to make Selenium "click" a result.

Can I do a jQuery type of selector. e.g.

$(".ul.ui-autocomplete li:first a")

回答1:

Use XPath selector in Selenium:

xpath=//li[contains(@class, 'ui-autocomplete')]/li[1]/a

not checked, might require some corrections.



回答2:

in response to "Can I do a jQuery type of selector," jQuery uses CSS selectors. Selenium can also use CSS selectors; just prefix the selector with "css=". so:

css=.ul.ui-autocomplete li:first a


回答3:

Next way to use xpath like this

xpath=/html/body/ul[2]/li[1]/a


回答4:

Suppose you have a dynamic XPATH then you can point to an element like this

driver.findElement(By.className(""));