如何使用Python在Selenium Webdriver中选择具有通用类名称的元素?

时间:2018-07-26 23:22:49

标签: python html css selenium selenium-webdriver

我是使用Python的Selenium Webdriver的新手。 我想选择包含“统计信息”的标签。尝试了多种方法,但都失败了,因为两个标记都没有任何ID,并且具有相同的类名。 请使用代码帮助我,以便使用Selenium Webdriver和python选择包含“统计信息”的标签。

一些试验列表,即使找到结果。我无法单击它,错误消息是无法单击列表。

driver.find_element_by_class_name("css173kae7").click()
driver.find_elements_by_link_text("stats/dashboard").click()
driver.find_elements_by_xpath("//*[contains(text(), 'Stats')]")

我已经附加了代码中Inspect元素的图像,请看一下。

(Updated) Image

Inspect element of the "Anchor Tags" from which one needs to be selected

4 个答案:

答案 0 :(得分:0)

根据您共享的 HTML 的图像,我将尝试使用此 XPATH 定位器来选择该元素:

malawi.map <- get_map(location = 'Malawi', zoom = 6)
gg <- ggmap(malawi.map)
gg <- gg + scale_y_continuous(limits = c(-17, -9))
gg <- gg + scale_x_continuous(limits = c(32,37))
malawi.Points1 <- gg + mynamestheme + labs(title = "2000-2004") + 
  geom_point(aes(x = Long, y = Lat, size = New_cases), 
             data = malawi_agg00.04, 
             alpha = .3, color = "red")

答案 1 :(得分:0)

尝试此xpath

  //nav//a[contains(@href,'/stats/dashboard')]

答案 2 :(得分:0)

使用此代码:

driver.find_elements_by_xpath("//*[contains(text(), 'stats')]")

如果要在href属性中查找“统计信息”,请使用以下代码:

driver.find_elements_by_xpath("//*[contains(@href, 'stats')]")

请记住,包含区分大小写。

如果要进行不区分大小写的搜索,请See here.

答案 3 :(得分:0)

获取列表中的所有元素后,需要通过其索引值选择所需的元素:

elements= driver.find_elements_by_xpath("//*[contains(text(), 'stats')]")

然后通过其索引标识并访问该元素,并调用click()函数:

例如,如果元素位于elements [0],则

elements[0].click()