Skip to content

Commit a19fd50

Browse files
unknownunknown
authored andcommitted
Improves performance on PageSourceMatch and PageSourceMatches.
1 parent 8e6717d commit a19fd50

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

Selenium/WebDriver.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -760,8 +760,10 @@ public string PageSource() {
760760
/// <param name="group">Optional - Group number (Zero based)</param>
761761
/// <returns>String</returns>
762762
public string PageSourceMatch(string pattern, short group = 0) {
763-
var result = this.PageSource().Match(pattern, group);
764-
return result;
763+
const string JS = "return document.body.innerHTML.match(/{0}/)[{1}]";
764+
string code = string.Format(JS, pattern, group);
765+
object result = session.javascript.Execute(code, null, false);
766+
return (string)result;
765767
}
766768

767769
/// <summary>
@@ -771,8 +773,11 @@ public string PageSourceMatch(string pattern, short group = 0) {
771773
/// <param name="group">Optional - Group number (Zero based)</param>
772774
/// <returns>Array of strings or null</returns>
773775
public List PageSourceMatches(string pattern, short group = 0) {
774-
var result = this.PageSource().Matches(pattern, group);
775-
return result;
776+
const string JS = "var r=/{0}/g,s=document.body.innerHTML,a=[],m;"
777+
+ "while(m=r.exec(s))a.push(m[{1}]);return a;";
778+
string code = string.Format(JS, pattern, group);
779+
object result = session.javascript.Execute(code, null, false);
780+
return (List)result;
776781
}
777782

778783
#endregion

0 commit comments

Comments
 (0)