首页 > 解决方案 > facebook pager(查看更多)链接元素已定位但无法点击它

问题描述

请帮忙,

我使用 C#、selenium web driver 3.141 和 selenium firefox web driver 0.22 来完成我的工作。

我想在 facebook liker 列表页面上单击查看更多按钮/链接(示例页面:https ://www.facebook.com/ufi/reaction/profile/browser/?ft_ent_identifier=917471895105237&av=100027618912502 )

我已经从查看更多按钮/链接中成功找到了 xpath,但无法单击它。我已经尝试了很多这样的事情,但仍然没有成功。

直接点击链接

var elMoreLiker = driver.FindElement(By.XPath("//a[contains(@class,'uiMorePagerPrimary')]"));
elMoreLiker.Click();
System.Threading.Thread.Sleep(3000);

点击链接父

var elMoreLiker = driver.FindElement(By.XPath("//a[contains(@class,'uiMorePagerPrimary')]"));
elMoreLiker = elMoreLiker.FindElement(By.XPath(".."));
elMoreLiker.Click();
System.Threading.Thread.Sleep(3000);

单击父级的链接父级

var elMoreLiker = driver.FindElement(By.XPath("//a[contains(@class,'uiMorePagerPrimary')]"));
elMoreLiker = elMoreLiker.FindElement(By.XPath(".."));
elMoreLiker = elMoreLiker.FindElement(By.XPath(".."));
elMoreLiker.Click();
System.Threading.Thread.Sleep(3000);

使用 javascript 执行点击(也尝试点击到父级)

var elMoreLiker =   driver.FindElement(By.XPath("//a[contains(@class,'uiMorePagerPrimary')]"));
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("arguments[0].click();", elMoreLiker);
System.Threading.Thread.Sleep(3000);

使用 enter 执行单击(也尝试单击父级)

var elMoreLiker =   driver.FindElement(By.XPath("//a[contains(@class,'uiMorePagerPrimary')]"));
elMoreLiker.SendKeys(OpenQA.Selenium.Keys.Enter);
System.Threading.Thread.Sleep(3000);

使用动作来执行点击

var elMoreLiker =   driver.FindElement(By.XPath("//a[contains(@class,'uiMorePagerPrimary')]"));
Actions ayo = new Actions(driver);
ayo.MoveToElement(elMoreLiker).Click().Build().Perform();
System.Threading.Thread.Sleep(3000);

我已经被困在这里几天了,不知道我应该尝试什么。任何帮助将不胜感激。

标签: c#selenium

解决方案


推荐阅读