0
我的目標是使用Selenium驗證此條形圖中的值。如何使用Selenium Webdriver c從條形圖中提取數值#
我一直無法使用Selenium查找圖表值。不知道我是否應該使用XPath或CssSelector。
圖表中有三個條,頻繁,有時和從不。當前有圖表中的值如下所示:
常見:2
有時:1
很少:0
我能看到值和標籤在頁源中的每個條,但在C#中找不到使用Selenium Webdriver的元素。
<div class="results-chart">
<div class="chart-bar-container">
<div class="chart-bar green" ng-style="{'height': graph.Frequently.patientPercent}" ng-hide="graph.Frequently.patient == 0" style="height: 193.333px;">
<div class="chart-background"></div>
<div class="chart-main">
<div class="chart-value ng-binding">2</div>
</div>
</div>
<div class="chart-bar orange ng-hide" ng-style="{'height': graph.Frequently.companionPercent}" ng-hide="graph.Frequently.companion == 0">
<div class="chart-background"></div>
<div class="chart-main">
</div>
<div class="chart-bar-description">Frequently</div>
</div>
<div class="chart-bar-container">
<div class="chart-bar green" ng-style="{'height': graph.Sometimes.patientPercent}" ng-hide="graph.Sometimes.patient == 0" style="height: 96.6667px;">
<div class="chart-background"></div>
<div class="chart-main">
<div class="chart-value ng-binding">1</div>
</div>
</div>
<div class="chart-bar orange ng-hide" ng-style="{'height': graph.Sometimes.companionPercent}" ng-hide="graph.Sometimes.companion == 0">
<div class="chart-background"></div>
<div class="chart-main">
<div class="chart-value ng-binding">0</div>
</div>
</div>
<div class="chart-bar-description">Sometimes</div>
</div>
<div class="chart-bar-container">
<div class="chart-bar green ng-hide" ng-style="{'height': graph.Rarely.patientPercent}" ng-hide="graph.Rarely.patient == 0">
<div class="chart-background"></div>
<div class="chart-main">
<div class="chart-value ng-binding">0</div>
</div>
</div>
<div class="chart-bar orange ng-hide" ng-style="{'height': graph.Rarely.companionPercent}" ng-hide="graph.Rarely.companion == 0">
<div class="chart-background"></div>
<div class="chart-main">
</div>
<div class="chart-bar-description">Rarely</div>
</div>
</div>
我找到了一種方法找到的結果,但它僅適用,因爲我知道,結果總是小於10。我希望能學到更好的方式來做到這一點,這種方法似乎很脆弱。
public static string CheckFrequently()
{
var frequently = Driver.Instance.FindElements(By.ClassName("chart-bar-container"));
string result = frequently[0].Text.Substring(0, 1);
return result;
}
非常感謝。我瞭解到,我應該一直在看「經常遏制」類。我正在測試由第三方爲我們構建的網站,並且我會傳遞您的建議以包含唯一標識符。 – MattJ 2015-04-02 22:27:49