selenium firefox css选择器崩溃

时间:2013-06-05 06:05:36

标签: css firefox selenium crash

我使用ubuntu 12和selenium和firefox 7(首先是21,我检查了selenium支持列表,它不支持firefox 21,所以我卸载21并安装7.我还安装了selenium ide和selenium webdriver。

这是我的目标

<a href="javascript:void(0);" class="vd_dload" data-info="....">

<a href="javascript:void(0);" class="vd_dload" data-info="....">

<a href="javascript:void(0);" class="vd_dload" data-info="....">

所以我使用eq(0)eq(1)来选择元素。我在selenium ide中测试它,它的工作原理。我选择它像

 command  clickandwait css=a.vd_dload:eq(2)

并保存为python测试代码

driver.find_element_by_css_selector("a.vd_dload:eq(1)").click()

并且python代码在这里兑现。它报告:

InvalidSelectorException:Message: u'The give selecor a.vd_dload:eq(2) is either invalid or does not result in a webElement. the following error occurred:\n[Exception.."An invalid or illegal string was specified" code:"12" nsresult:"0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)" location......

有人给出一些建议吗?

1 个答案:

答案 0 :(得分:0)

eq是一个jQuery选择器,因此不属于CSS标准。因此,一旦你使用Selenium告诉它运行“这里是我的CSS选择器”,这将是一个非常不愉快的工具。

虽然不是直接等效(例如,eq!= nth-child),但在您的实例中,CSS选择器nth-child将正常工作:

a.vd_dload:nth-child(1)
a.vd_dload:nth-child(2)
a.vd_dload:nth-child(3)

注意,nth-child CSS选择器是CSS3选择器规范的一部分,因此可能会导致IE出现问题。它仅支持IE9及更高版本,以及任何现代版本的FF / Chrome /等。