我想通过移动设备发送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>
我该怎么办?
答案 0 :(得分:0)
根据您共享的HTML,点击带有 YeniGö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();