0

选择特定元素在网页中我想测试一下,我需要通过点击定义的元素有关的以下内容:如何与硒webdriver的IE

<span id="mx45" class="text powerwhite goto " title="Go To ALT+G " style="display: block; cursor: pointer;" accesskey="G" mxevent="click" targetid="mx45" ev="goto" tabindex="0" ctype="label" align="middle" clicked="true"> 

我不能使用的ID,因为当服务器重新启动时,id会更改。我尝试从Firebug获得XPATH(就像我为其他许多元素所做的那样),但是没有找到。所有建议感激地收到。

编辑 感谢答复,我现在可以选择元素,但是这提出了一个新问题。该元素是一个弹出菜单的链接,但如果我尝试让Selenium点击链接,它就会闪烁(就像Selenium正在查找它,但无法点击它)。如果我点击链接,我的测试仍在继续,但我在这里挣扎一点,让Selenium实际上点击了这个元素。

回答

1

我不知道你的HTML的结构,

但考虑,标题是独一无二的,你可以做财产以后这样的:

driver.find_element_by_xpath("//span[@title='Go To ALT+G ']").click() 

你也可以去“的TabIndex”或者“class”,如果你的html结构允许的话。

someParentElement.find_element_by_xpath("//span[@tabindex='0']").click() 
someParentElement.find_element_by_xpath("//span[@class='text powerwhite goto ']").click() 

这将是例如情况下,如果你能找到一个父元素下面这些属性是独特的

+0

感谢您的回答,它看起来像是找到元素,但它似乎无法点击它。该链接闪烁,就像Selenium一直在找到它,但只是无法点击它。 –

+0

如果你在这个span元素周围发布更多的html,可能会出现一个实际的“锚点”a元素,你需要单击它来替代... – drkthng

0

假设我引用的属性是静态的,我会用CSS选择器引用像drkthng使用的属性

$$(span.text[title='Go To ALT+G ']"). 

您还可以使用静态相邻元素作为achor并从中导航。

+0

我也试过这个,它的工作原理/失败的方式相同@ drkthng's答案确实,链接闪烁,但从未真正被选中。 –