使用Selenium检查网页标签是否被选中

1 投票
1 回答
2386 浏览
提问于 2025-04-17 10:38

我想做一件非常简单的事情。有没有人知道如何用Selenium RC Python客户端来判断网页上的一个标签(Tab)是否被选中?

这里的标签指的是以下链接中的示例:
http://clagnut.com/sandbox/csstabs/?writingtext=csstabs#
http://esdi.excelsystems.com/wsexmp/DIVTAB.pgm?wsnum=00096
http://www.hongkiat.com/blog/drop-down-menu-30-free-scripts-to-enhance-header-navigation/

我知道可以用 get_eval(js) 来运行一些JavaScript代码,可能可以通过这些代码来查找某些变化。但是我想知道有没有一种通用的JavaScript可以告诉我一个标签是否被选中?或者有没有Selenium的方法可以直接使用(比如 focus() 等等)?

原因是,我可以通过调用 click(tab_locator) 来轻松点击标签。但我想确认一下我是否真的选中了这个标签。难道没有类似 is_tab_selected(tab_locator) 的方法吗?

1 个回答

1

在我测试的页面中,设计师为每个标签使用了一个元素。当选择某个标签时,这个的类名会被设置为“selected”。我用下面的方法来检查某个标签是否被选中。

def verifySelectedTabName(self, tabText):
    if self.selenium.is_element_present("css=div.'tabheader' span.selected:contains(%s)"%tabText):
        return 1

    return 0

在你提到的示例页面中,标签看起来是元素。你应该可以查看这个的类名。例如,

self.selenium.is_element_present("css=div#container1 ul.tabs a.tab-active:contains(%s)"%tabText)

撰写回答