Tại thời điểm viết Microsoft Edge không được hỗ trợ bởi CodedUI, họ đã đề cập đến họ đang đánh giá hỗ trợ nhưng hiện tại bạn không thể sử dụng nó: Liên kết này cho thấy một lỗi đệ về vấn đề này: https://connect.microsoft.com/VisualStudio/feedback/details/1551238/vs2015-supports-codedui-automation-test-for-edge-browser
WebDriver là hiện tại là cách tốt nhất để tự động hóa Microsoft Edge. Tuy nhiên nhìn vào mã ở trên bạn không thể làm chính xác điều tương tự. Với WebDriver, bạn có thể định vị một phần tử theo Id, ClassName, TagName, Name, LinkText, một phần văn bản liên kết, CSS, Xpath nhưng theo tôi biết bạn không thể định vị một đối tượng từ x, y phối hợp như bạn làm ví dụ trên.
Để bắt đầu với Trình quản lý trang web. Tạo ứng dụng bảng điều khiển. Cài đặt các gói sau:
Install-Package Selenium.RC
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriverBackedSelenium
Install-Package Selenium.Support
cài đặt Các đúng Microsoft WebDriver tùy thuộc vào hệ điều hành của bạn:
Thông tin thêm về Microsoft WebDriver có thể được tìm thấy here.
Sau đó bạn có thể thêm một số mã để lái xe WebDriver, ví dụ sau đi vào blog của tôi và trở nên một yếu tố thông qua đó là tên lớp css:
using System;
using System.IO;
using OpenQA.Selenium;
using OpenQA.Selenium.Edge;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Support.UI;
namespace SampleGetText
{
public class Program
{
static void Main(string[] args)
{
var text = GetText();
}
public static string GetText()
{
RemoteWebDriver driver = null;
string serverPath = "Microsoft Web Driver";
// Makes sure we uses the correct ProgramFiles depending on Enviroment
string programfiles = Environment.Is64BitOperatingSystem ? "%ProgramFiles(x86)%" : "%ProgramFiles%";
try
{
// Gets loaction for MicrosoftWebDriver.exe
serverPath = Path.Combine(System.Environment.ExpandEnvironmentVariables(programfiles), serverPath);
//Create a new EdgeDriver using the serverPath
EdgeOptions options = new EdgeOptions();
options.PageLoadStrategy = EdgePageLoadStrategy.Eager;
driver = new EdgeDriver(serverPath, options);
//Set a page load timeout for 5 seconds
driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(5));
// Navigate to my blog
driver.Url = "https://blogs.msdn.microsoft.com/thebeebs/";
// Find the first element on my screen with CSS class entry-title and return the text
IWebElement myBlogPost = driver.FindElement(By.ClassName("entry-title"));
return myBlogPost.Text;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return "";
}
finally
{
if (driver != null)
{
driver.Close();
}
}
}
}
}
Nguồn
2015-12-23 12:11:24
Tại điểm nào không mã không còn làm việc như mong đợi? (Ví dụ, mẫu văn bản không được hỗ trợ, hoặc RangeFromPoint() trả về một phạm vi bất ngờ.) Cần có một phần tử trong Edge hỗ trợ mẫu Văn bản. Vì vậy, có lẽ FromPoint() không trả lại yếu tố đó. Bạn có thể kiểm tra các thuộc tính của phần tử đó để xác định phần tử nào bạn có. Nếu nó không phải là phần tử hỗ trợ mẫu Văn bản, có thể bạn có thể điều hướng đến phần tử Mẫu văn bản từ phần tử được trả về bởi FromPoint(). –
Có thể là từ điểm không hoạt động, mặc dù tôi cần điều đó. – tofutim
Câu hỏi của bạn quá rộng vì có thể/nên hoạt động trong trường hợp chung. Vui lòng cung cấp trường hợp repro đầy đủ. –