2014-10-02 74 views
-1

我試圖單擊網站上沒有「ID」或「Name」的小按鈕。唯一的唯一標識符是的onclick,這是如下:如何將密鑰發送到硒中的困難元素(Python)

onclick="submitForm('DefaultFormName',1,{'param1':'HXCTIMECARDACTIVITIESPAGEXgm7J5oT','serverValidate':'1uCdqvhJe','param2':'',event:'details|1'});return false;" 

然而,頁面上的其他按鈕的onclick以下:

onclick="submitForm('DefaultFormName',1,{'param1':'HXCTIMECARDACTIVITIESPAGEXgm7J5oT','serverValidate':'1uCdqvhJe','param2':'',event:'details|2'});return false;" 

唯一的區別是在一個1對2中間的代碼。我試圖用「find_element_by_css_selector」用下面的代碼,但它不工作:

driver.find_element_by_css_selector(".x1p[onclick*='details|1']").click() 

另一種辦法是選擇前面的元素,用下面的代碼:

precedingbutton = driver.find_element_by_name('B22_1_6') 

然後再送標籤,然後輸入。但是,在發送Tab之後,我不知道如何發送Enter,而不將Send_Keys命令分配回前面的框,該框取消選擇我想要的按鈕。

讓我知道你是否可以幫忙!

回答

0

如果您可以找到父項,則可以使用xpath或與其相關的nth-child css選擇器來定位該子項。

編輯迴應評論:

由「2元離開」你的意思是目標前方兄弟姐妹,你可以試試td[name="B22_1_6"] + td + td假設。這是sibling selector

+0

雖然前面的框不是父項。表格中的另一個元素。該表沒有名稱或ID,所以我不知道我可以如何引用它。 – sdailey814 2014-10-02 20:43:43

+1

如何使用兄弟符號(http://selenium.polteq.com/en/locate-sibling-elements/) – jcfollower 2014-10-02 20:46:49

+0

@jcfollower就是這麼說的。 – 2014-10-02 20:49:26

0

您可以通過

driver.find_element(By.XPATH, 'your xpath').click() 

容易做到這一點對於找到的XPath,只是檢查與螢火蟲的按鈕,在HTML標籤右鍵點擊選擇的元素上,點擊複製XPath。

希望它能幫助你。