首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过Selenium和C#根据给定的超文本标记语言点击元素

如何通过Selenium和C#根据给定的超文本标记语言点击元素
EN

Stack Overflow用户
提问于 2018-07-07 19:53:28
回答 1查看 71关注 0票数 1

我想用手机模拟发送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>

我该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-09 02:37:15

根据您共享的超文本标记语言,要单击带有文本的元素,如Yeni Gönderi,您需要诱导WebDriverWait才能使元素可单击,您可以使用以下解决方案:

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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51222964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档