如何将密钥发送到selenium中的困难元素(Python)

时间:2014-10-02 20:24:02

标签: python selenium sendkeys

我试图在网站上点击一个没有“ID”或“名称”的小按钮。唯一的唯一标识符是onclick,如下所示:

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

但是,页面上的另一个按钮具有以下内容:

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之后,我不知道如何在不将Send_Keys命令分配回前一个框的情况下发送Enter,这会取消选择我想要的按钮。

请告诉我你是否可以提供帮助!

2 个答案:

答案 0 :(得分:0)

如果您可以找到父项,则可以使用xpath或nth-child css选择器找到相对于它的子项。

编辑以回应评论:

假设“2个元素之外”意味着它是目标之前的兄弟,请尝试td[name="B22_1_6"] + td + td之类的东西。这是sibling selector

答案 1 :(得分:0)

您可以通过

轻松完成
driver.find_element(By.XPATH, 'your xpath').click()

要查找xpath,只需使用firebug检查按钮,然后在html选项卡中右键单击所选元素,然后单击Copy XPath。

希望它会对你有所帮助。