【问题标题】:How to click on the element as per the given HTML through Selenium and C#如何通过 Selenium 和 C# 根据给定的 HTML 单击元素
【发布时间】:2018-12-15 19:18:44
【问题描述】:

我想用手机模仿发送 instagram 货件。但我需要点击新货件的按钮。我尝试了有关按钮单击的所有方法,但我没有管理它。

public static void HoverMouseOverClicks(IWebElement element)
    {
        Actions action = new Actions(insta);
        action.MoveToElement(element);
        IJavaScriptExecutor executor = (IJavaScriptExecutor)insta;
        executor.ExecuteScript("arguments[0].scrollIntoView(true);arguments[0].click();", element);
    }

您在上面看到的代码点击代码

HoverMouseOverClicks(insta.FindElement(By.XPath("//*[@id='react-root']/section/nav[2]/div/div/div[2]/div/div/div[3]/span")));

我尝试了这个,我仍然无法得到结果。

 insta.FindElement(By.XPath("//*[@id='react-root']/section/nav[2]/div/div/div[2]/div/div/div[3]/span")).Click();

此代码有时点击,有时不点击。

XPath 路径永远不会改变。

相关 HTML:

<div class="q02Nz _0TPg" role="menuitem"><span class="glyphsSpriteNew_post__outline__24__grey_9 Szr5J">Yeni Gönderi</span> <span class="glyphsSpriteNew_post__outline__24__grey_9 Szr5J">Yeni Gönderi</span></div>

我该怎么办?

【问题讨论】:

  • 请添加相关html

标签: c# selenium selenium-webdriver xpath css-selectors


【解决方案1】:

根据您共享的 HTML,要单击文本为 Yeni Gönderi 的元素,您需要诱导 WebDriverWait 以使 元素可点击 em>,您可以使用以下解决方案:

new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[@role='menuitem']//span[contains(@class, 'glyphsSpriteNew_post__') and contains(.,'Yeni Gönderi')]"))).Click();

【讨论】:

  • @Appiah 如果这个/任何答案对您/对您有帮助,对未来的读者有帮助,请投票支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
相关资源
最近更新 更多