我目前有很多情况需要验证页面(及其所有元素)是否正确显示.isDisplayed()WebElement 的方法似乎是一种逻辑方式,但我想准确理解这个方法正在做什么来确定元素是否"显示".所述的Javadoc在网络上似乎是稀疏充其量不棚上的方法和其它信息的内部运作任何光.
如果有人能提供这种方法如何运作的详细描述,我将非常感激.
我有一个名为的模块fooModule.在这个模块中,我导入fooModule(本身):
import * as fooModule from './fooModule';
export function logFoo() {
console.log(fooModule)
}
Run Code Online (Sandbox Code Playgroud)
当logFoo()被调用时,我可以看到所有的fooModule的出口.这是如何运作的?
我已经实现了以下代码(改编自教程),以便运行命令提示符窗口、运行程序并读取输出。该代码是从嵌套在用户控件中的 ButtonClick 事件处理程序调用的。
我的印象是,这将允许我的程序的其余部分在外部进程运行时运行,因为这些方法是“异步”的。然而,情况似乎并非如此,因为我的 UI 在操作运行时会冻结。我应该补充一点,cmd 进程结束时收到的输出是正确的。
很抱歉转储这样的代码,只是不知道此时还能做什么!
任何帮助将不胜感激。
public static void runExternalProcess()
{
StringBuilder output = new StringBuilder();
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.OutputDataReceived += new DataReceivedEventHandler(outputEventHandler);
cmd.StartInfo.RedirectStandardInput = true;
cmd.Start();
cmd.BeginOutputReadLine();
StreamWriter sortStreamWriter = cmd.StandardInput;
StreamWriter sw = cmd.StandardInput;
if (sw.BaseStream.CanWrite)
{
sw.WriteLine("ping www.google.com");
}
sw.Close();
cmd.WaitForExit();
MessageBox.Show(output.ToString());
cmd.Close();
}
private static void outputEventHandler(object sendingProcess, DataReceivedEventArgs e)
{
if (!String.IsNullOrEmpty(e.Data))
{
output.Append(e.Data + Environment.NewLine); …Run Code Online (Sandbox Code Playgroud)