C# Selenium:如何单击 Sharepoint 文件夹上传对话框中不在 DOM 中的接受按钮
C# Selenium: How to click Accept button that is not in the DOM in a Sharepoint Folder Upload dialogue box
我搜索了 Whosebug,但找不到以下问题的正确解决方案:
在内部 Sharepoint 站点中,单击上传后,然后单击文件夹,我使用 SendKeys.SendWait 输入目录位置。然后在将 "Enter" 作为 Send.Keys.SendWait 发送后,会出现一个对话框,我需要在其中单击上传按钮,但无法搜索到该元素,因为它似乎不是 [=33= 的一部分].
这是代码片段:
SendKeys.SendWait(@"C:\Automation\Testing\");
SendKeys.SendWait("{Enter}");
SendKeys.SendWait("{Enter}");
IAlert alert = Driver.driver.SwitchTo().Alert();
alert.Accept();
我也尝试过使用 JavaScript 来处理这个问题,但没有帮助:
IJavaScriptExecutor jsX = (IJavaScriptExecutor)driver;
jsX.ExecuteScript("Object.defineProperty(BeforeUnloadEvent.prototype,
'returnValue', { get:function(){}, set:function(){} });");
在另一个线程中,我注意到添加“--disable-notifications”和“--disable-popup-blocking”的建议,但这也不起作用。
代码如下:
ChromeOptions options = new ChromeOptions();
options.AddArguments("disable-infobars", "start-maximized", "no-sandbox", "--disable-notifications", "--disable-popup-blocking");
Driver.driver = new ChromeDriver(options);
在对话框中找到并单击 "Upload" 的最佳方法是什么?
您可以尝试使用InputSimulator Nuget 来模拟键盘按钮事件。在屏幕截图中选择 Cancel
按钮,按 Tab
键可能会将焦点更改为 Upload
按钮,然后 Enter
键可能会按 Upload
按钮:
var sim = new WindowsInput.InputSimulator();
System.Threading.Thread.Sleep(3000);
sim.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.TAB);
System.Threading.Thread.Sleep(300);
sim.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.RETURN);
我搜索了 Whosebug,但找不到以下问题的正确解决方案:
在内部 Sharepoint 站点中,单击上传后,然后单击文件夹,我使用 SendKeys.SendWait 输入目录位置。然后在将 "Enter" 作为 Send.Keys.SendWait 发送后,会出现一个对话框,我需要在其中单击上传按钮,但无法搜索到该元素,因为它似乎不是 [=33= 的一部分].
这是代码片段:
SendKeys.SendWait(@"C:\Automation\Testing\");
SendKeys.SendWait("{Enter}");
SendKeys.SendWait("{Enter}");
IAlert alert = Driver.driver.SwitchTo().Alert();
alert.Accept();
我也尝试过使用 JavaScript 来处理这个问题,但没有帮助:
IJavaScriptExecutor jsX = (IJavaScriptExecutor)driver;
jsX.ExecuteScript("Object.defineProperty(BeforeUnloadEvent.prototype,
'returnValue', { get:function(){}, set:function(){} });");
在另一个线程中,我注意到添加“--disable-notifications”和“--disable-popup-blocking”的建议,但这也不起作用。
代码如下:
ChromeOptions options = new ChromeOptions();
options.AddArguments("disable-infobars", "start-maximized", "no-sandbox", "--disable-notifications", "--disable-popup-blocking");
Driver.driver = new ChromeDriver(options);
在对话框中找到并单击 "Upload" 的最佳方法是什么?
您可以尝试使用InputSimulator Nuget 来模拟键盘按钮事件。在屏幕截图中选择 Cancel
按钮,按 Tab
键可能会将焦点更改为 Upload
按钮,然后 Enter
键可能会按 Upload
按钮:
var sim = new WindowsInput.InputSimulator();
System.Threading.Thread.Sleep(3000);
sim.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.TAB);
System.Threading.Thread.Sleep(300);
sim.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.RETURN);