0

我使用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......

有人给点建议吗?

4

1 回答 1

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-childCSS 选择器是 CSS3 选择器规范的一部分,因此可能会导致 IE 出现问题。它仅在 IE9 及更高版本以及任何现代版本的 FF/Chrome/etc 中受支持。

于 2013-06-05T08:38:31.743 回答