Unable to find xPath in Selenium

时间:2017-07-14 21:10:36

标签: selenium xpath

i have had no problem finding objects on the webpages, but this one is giving me hard time

url used: https://interact2.responsys.net/authentication/login/LoginPage

在此页面上我无法点击“登录”按钮。

我尝试使用ID,Class,xPath,自定义xPath

Firepath:登录

我哪里错了?你能帮我吗

2 个答案:

答案 0 :(得分:0)

问题在于页面上有两个元素具有几乎相同的HTML代码。第一个是隐藏的,所以无论您如何尝试使用idclass点击该按钮,您都会获得ElementNotVisibleException。您需要使用索引来选择所需的一个(第二个),例如在Python,这应该是

driver.find_elements_by_id("signIn")[1].click()

或者您可以使用仅包含在第二个元素中的onclick属性:

driver.find_element_by_xpath("//button[@id='signIn' and @onclick]").click()

答案 1 :(得分:0)

尝试:

   JavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("var evt = document.createEvent('MouseEvents');" +"evt.initMouseEvent('click',true, true, window, 0, 0, 0, 0, 0, false, false,false, false, 0,null);" + "arguments[0].dispatchEvent(evt);", driver.FindElement(By.Id("signIn")));