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答案確實,鏈接閃爍,但從未真正被選中。 –