我希望我能以一种容易理解的方式描述我的问题。
我有和html看起来像这样:
<div class="class-div">
<label class="class-label">
<span class="class-span">AAAA</span>
</label>
<div class="class-div-a">
<textarea class="class-textarea">
</textarea>
</div>
</div>
<div class="class-div">
<label class="class-label">
<span class="class-span">BBBB</span>
</label>
<div class="class-div-a">
<textarea class="class-textarea">
</textarea>
</div>
</div>
我希望TextArea的Xpath(其中Label的值为AAAA)用Selenium中的值填充它。
所以像这样...
wait.Until(ExpectedConditions.ElementIsVisible(
By.XPath("//div[@class='class-div']/label[@class='class-label'][span[@class='class-span' and text()='AAAA']]/following-sibling::div[@class='class-div-a']/textarea[@class='class-textarea']"))).SendKeys(valueTextArea);
最佳答案
问题可能是在此服务员条件下,ExpectedConditions.ElementIsVisible
问题是您的<textarea>
在硒上下文中不是“可见的”,可见性意味着DOM中存在该元素(这是正确的),并且其大小大于0px,这对于您的<textarea>
元素可能是错误的。在Java中,您可以使用ExpectedConditions.presenceOfElement()
而不是ExpectedConditions.visibilityOfElement()
,不确定它在C#中的运行方式,但是您会得到图片。
尝试看看它是否可以解决您的问题。
关于c# - Selenium:xpath后继 sibling ,其中 sibling 有更多 child ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41748595/