我试图在网站上点击一个没有“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,这会取消选择我想要的按钮。
请告诉我你是否可以提供帮助!
答案 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。
希望它会对你有所帮助。