我希望我能以一种容易理解的方式描述我的问题。

我有和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/

10-11 23:37