logo
down
shadow

Selenium with .net core: performance impact, multiple threads in IWebElement?


Selenium with .net core: performance impact, multiple threads in IWebElement?

By : Aaron Garcia
Date : November 19 2020, 03:01 PM
should help you out I've been using Selenium for writing an end to end tests using the .net framework 4.6. For a new project I'm using Selenium to do some web crawling but I'm experiencing enormous lag on very simple Selenium tasks. , There is a dirty fix for the problem for now.
code :
//this is in my Dependency Register method
string driverPath = $@"{AppDomain.CurrentDomain.BaseDirectory}";
var service = FirefoxDriverService.CreateDefaultService(driverPath);
container.RegisterInstance<IWebDriver>(new FirefoxDriver(service), new PerThreadLifetimeManager());
FixDriverCommandExecutionDelay(container.Resolve<IWebDriver>());
//to be deleted when https://github.com/dotnet/corefx/issues/24104 is fixed
//in .net core 2.0
public static void FixDriverCommandExecutionDelay(IWebDriver driver)
{
    PropertyInfo commandExecutorProperty = typeof(RemoteWebDriver).GetProperty("CommandExecutor", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty);
    ICommandExecutor commandExecutor = (ICommandExecutor)commandExecutorProperty.GetValue(driver);

    FieldInfo remoteServerUriField = commandExecutor.GetType().GetField("remoteServerUri", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.SetField);

     if (remoteServerUriField == null)
     {
         FieldInfo internalExecutorField = commandExecutor.GetType().GetField("internalExecutor", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField);
         commandExecutor = (ICommandExecutor)internalExecutorField.GetValue(commandExecutor);
         remoteServerUriField = commandExecutor.GetType().GetField("remoteServerUri", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.SetField);
            }

    if (remoteServerUriField != null)
    {
        string remoteServerUri = remoteServerUriField.GetValue(commandExecutor).ToString();

         string localhostUriPrefix = "http://localhost";

         if (remoteServerUri.StartsWith(localhostUriPrefix))
         {
             remoteServerUri = remoteServerUri.Replace(localhostUriPrefix, "http://127.0.0.1");

             remoteServerUriField.SetValue(commandExecutor, new Uri(remoteServerUri));
          }
  }


Share : facebook icon twitter icon
Performance impact of Processes vs Threads

Performance impact of Processes vs Threads


By : Vasiliy
Date : March 29 2020, 07:55 AM
I wish this helpful for you The idea that processes are slow to create is an old one, and was much more true in the past. Google's Chrome team did a little paragraph somewhere about how it's not as big an impact anymore, and here is Scott Hanselman on the subject: http://www.hanselman.com/blog/MicrosoftIE8AndGoogleChromeProcessesAreTheNewThreads.aspx
My take on it is that threads are faster?'c but only moderately so, and currently it's easier to make mistakes with threads.
Does running many IO threads impact performance of a few CPU-intensive threads?

Does running many IO threads impact performance of a few CPU-intensive threads?


By : Virgie Sacala
Date : March 29 2020, 07:55 AM
I hope this helps you .
Does context switching for one of the many network IO threads ruin thread/CPU cache of the "active" threads?
Can having multiple threads on a single core system still improve performance?

Can having multiple threads on a single core system still improve performance?


By : Tauhid
Date : March 29 2020, 07:55 AM
help you fix your problem Having multiple threads on a single CPU can improve performance in the majority of cases, because in the majority of cases a thread is not busy doing computations, it is waiting for things to happen.
This includes I/O, such as waiting for a disk operation to complete, waiting for a packet to arrive from the network, waiting for user input, etc. and even some non-I/O situations, such as waiting for a different thread to signal that an event has occurred.
Cannot Convert from OpenQA.Selenium.IWebElement to Open.Qa.Selenium.By

Cannot Convert from OpenQA.Selenium.IWebElement to Open.Qa.Selenium.By


By : Diccon
Date : March 29 2020, 07:55 AM
wish help you to fix your issue There is no ExpectedConditions.ElementIsVisible(IWebElement). Unfortunately, you can only use ElementIsVisible with By objects.
If appropriate, you could substitute with ExpectedConditions.ElementToBeClickable(IWebElement), which is a slightly different case that also checks that the element is enabled in addition to being visible. But this may satisfy your requirement.
code :
new WebDriverWait(driver, TimeSpan.FromSeconds(TimeOut))
{
    Message = "Element was not displayed within timeout of " + TimeOut + " seconds"
}.Until(d => 
{
    try
    {
        return element.Displayed;
    }
    catch(NoSuchElementException)
    {
        return false;
    }
}
What is the performance impact of having more OpenMP threads than work?

What is the performance impact of having more OpenMP threads than work?


By : whitefox1303
Date : March 29 2020, 07:55 AM
it helps some times Consider the following example where the individual jobs are independent (no synchronization needed between the threads): , First of all, the most general way to express your code is:
Related Posts Related Posts :
  • ASP.NET MVC Html.BeginForm in WebGrid column
  • I need to set value of my ComboBox depending on selection of other ComboBox
  • How to get a result from a stored procedure as value?
  • Can I pass a ValueTuple to a method that requires a generic type and still maintain the member variables?
  • Testing eager-loading scenarios with Effort.EF6
  • Visual studio breaks on exception that IS handled with unhandled exception dialog
  • Cannot get property of class(ASP.NET MVC)
  • NUnit assertions in production code
  • Bug in SSRS CreateFolder C# command?
  • Convert web form content to PDF using c# in asp.net web forms
  • Web Application publishing failed - Visual Studio - C# - ASP.NET
  • How to encode IP for GET request in api in .NET
  • Access class item generated from xml using xsd.exe
  • Is there a shortcut to explicit named paramers when I call a method in C# for VisualStudio 2017?
  • Sorting datatables in a dataset with the datatable.name
  • Datagridview multilpe links
  • Correct pattern for exposing available actions
  • Local web application accepts numbers with comma and published does not
  • How to read an xml file using xmldataprovider in wpf C#
  • Windows service and Entity Framework
  • Visual Studio 2017 Docker support not available for ASP.Net Core Angular or React projects
  • Datacontext models with join
  • WPF: Increased window size decreases performance
  • Handling bad CSV records in CsvHelper
  • C# Displays file icons in asp.net on GridView nested
  • is there a way to get the file names which need to be updated if TFS status.Numoperations != 0?
  • Headless Firefox in Selenium C#
  • How do I start a .exe with a json string as parameter correctly?
  • StreamContent not loaded to the end
  • HAP parses formatting in HTML documents
  • repeat and count a loop in an unordered sequence in C#
  • Redundant Casting in Visual studio
  • Lost references in Visual Studio 2017 solution
  • Is there a way to add two numbers using a private constructor in C#
  • Is it possible to execute multiple SSH commands from a single login session with SSH.NET?
  • How can I get NHibernate to map to a Tuple or Class?
  • MVC 5 C# Window Authentication pop up when I navigate to a certain area
  • Mongo C# driver toJson() DateTime
  • Coprime integers
  • What is the purpose with files ending with *CS.cs in Xamarin Forms projects?
  • MVC5 / Entity | Update/Create Complex Model
  • How to return auto increment ID from SQL using Petapoco ORM in .NET MVC
  • Create new web app offline c# using Visual Studio
  • How many times is ordered the IEnumerable in this case?
  • C# error when update database 2008 to sql 2016
  • How to insert string in multiple continuous pattern in windows c#
  • How to send temp data from Partial View to its parent View
  • C# encapsulation when getting updates from asynchronous method
  • Asp net core Content Security Policy implementation
  • @Html.DropDownList() Placeholder as Disable and Selected
  • Set AM/PM in Material Time Picker WPF
  • Ninject passing reference in constructor
  • C# Entity Framework text SQL query wrapper
  • Core 2.0 MVC - AD Group Authorization for logging
  • Decentralized NLog Target per Http request
  • How to use x:Object and when?
  • Displays file icons in asp.net on GridView
  • How do I avoid two (or more) threads that work on a table at the same time to not work on same row?
  • Add xml attribute for property in DB First
  • How do i execute 2 sql queries by clicking a button [C#]
  • shadow
    Privacy Policy - Terms - Contact Us © voile276.org