下面提到的是网页中的一个节点,目标是在属性“ onclick”中获取数据。我知道我可以使用GetAttribute("onclick")
来获取数据。
但是出于某种原因,我只找到存在该输入节点的td。有人可以告诉是否有一种方法可以从父“ td”节点获取子“ input”节点的属性数据“ onclick”。
<td align="center">
<input type="button" class="button" value="View Pdf" onclick="showFilePreView('98374');">
</td>
答案 0 :(得分:0)
如果使用selenium-webdriver,则可以先找到父元素,然后使用childElement = parentElemnent.FindElement(By.)
查找子元素。
根据您的情况,您可以尝试以下代码:
IWebElement parentElement = YourWebDriver.FindElement(By.TagName("td"));
// those codes above assume that there is only one "td" node in your case.
IWebElement childElement = parentElement.FindElement(By.Name("button"));
String theStringYouWant = childElement.GetAttribute("onclick");
希望这些代码可以解决您的情况。
答案 1 :(得分:0)
所需元素是 dynamic 元素,以便获取属性 onclick 的 value ,即 showFilePreView('98374') ,您必须诱使 WebDriverWait 使其可见,并且可以使用以下任一解决方案:
CssSelector
:
new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementIsVisible(By.CssSelector("td[align='center']>input.button[value='View Pdf']"))).GetAttribute("onclick")
XPath
:
new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementIsVisible(By.XPath("//td[@align='center']/input[@class='button' and @value='View Pdf']"))).GetAttribute("onclick");
注意:此处假设<td>
节点在HTML DOM