我想用手机模拟发送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>
我该怎么办?
发布于 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();
https://stackoverflow.com/questions/51222964
复制相似问题