Antenne oder Strahler ist ein Mittel zum Strahlen und Empfangen elektromagnetischer Informationen. Parabolreflektorantenne ist eine der weit verbreiteten Antennen. Es ist ein besonderer Typ von Reflektorantennen. Der Einsatz von Reflektorantennen begann mit dem Beginn des Zweiten Weltkriegs mit der Weiterentwicklung der Kommunikationstechnologien.
The most straight-forward reflector and more comfortable to implement the reflector antenna is ‘Plane Reflector’ antenna. There are some other types of reflectors also, like – corner reflector, parabolic reflector, Cassegrain reflectors, spherical reflectors. Parabolic reflectors have another type known as ‘Front fed parabolic reflector antenna’.
Die Strahlungsparameter einer Reflektorantenne können durch Verbesserung des Strukturmusters des Bodens verbessert werden. Auf diesem Gebiet kommt für diesen Parabolreflektor die optische Wissenschaft ins Spiel. Die optische Mathematik beweist, dass einfallende parallele Strahlen durch Reflexion an einer parabelförmigen Struktur zu einem bestimmten Punkt (bekannt als Brennpunkt) konvergiert werden können.
Die reflektierten Wellenformen treten als paralleler Strahl aus. Dies ist ein mathematisches Phänomen, das als “Reziprozitätsregel” bekannt ist. Der proportionierte Punkt wird als Scheitelpunkt bezeichnet. Die ausgehenden, reflektierten Strahlen werden als kollimiert bezeichnet (da sie parallel sind). Obwohl die praktischen Beobachtungen gezeigt haben, dass die austretenden Strahlen nicht als paralleler Strahl bezeichnet werden können, unterscheiden sie sich geringfügig von der richtigen Form.
Der Sender dieser Antenne befindet sich im Allgemeinen an den Brennpunkten der Schale oder des Reflektors. Diese Art der Einrichtung wird als “Front-Feed” bezeichnet. Wir werden im nächsten Teil dieses Artikels eine Analyse dieser Art von Parabolreflektoren diskutieren.
Parabolreflektoren sind eine der weit verbreiteten, hocheffizienten Antennen, deren Nachfrage von Tag zu Tag steigt. Vom Empfang des Signals für unser Fernsehgerät bis zur Übertragung des Signals für die Raumstationen findet dieser Antennentyp Anwendungen in nahezu allen Bereichen der Kommunikationstechnologie. Einige der bemerkenswerten sind – auf Flughäfen, in Satelliten, in Raumstationen, in Teleskopen usw.
Eigenschaften
Einige signifikante Eigenschaften des Parabolreflektors sind unten angegeben. Die Eigenschaften betreffen Aperturamplitude, Polarisationseigenschaften, Phasenwinkel usw.
Der Magnitudenanteil hängt vom Abstand der Einspeisung zur Reflektoroberfläche ab. Die Proportionalität variiert von Struktur zu Struktur. Wie bei einer parabelförmigen Form ist sie umgekehrt proportional zum Quadrat des Radius der Parabel, und bei einer zylindrischen Struktur ist die Beziehung umgekehrt proportional zu ρ.
Der Brennpunkt des Reflektors wirkt für verschiedene Arten von geometrischen Konfigurationen unterschiedlich. Die zylindrische Struktur hat eine Linienquelle und parabolische Strukturen haben eine Punktquelle.
Wenn der Vorschub lineare Polarisationen parallel zur Zylinderachse aufweist, besteht keine Möglichkeit von Kreuzpolarisationen. Parabolische Strukturen haben nicht die gleiche Eigenschaft.
Wenn eine geometrisch perfekte Parabel um ihre Achse gedreht wird, entsteht eine andere Struktur. Diese Struktur ist als Parabolreflektor bekannt. So entsteht ein parabolisch geformter Reflektor. Es gibt einen bestimmten Grund für die Form dieses Reflektors. Die parabolische Form hilft, aus den austretenden Strahlen eine einfache und ebene Wellenform zu erzeugen.
Aus dem Bild können wir ersehen, dass die geometrische Länge OP + PQ einen konstanten Wert für das Entwerfen ergibt.
Wir können schreiben, OP + PQ = 2f; 2f ist der konstante Term.
Nehmen wir das an OP = r und so kommt PQ als PQ = r * cosϴ.
Nun ist der Wert von OP + PQ nach dem Ersetzen der Werte,
OP + PQ = r + r * cosϴ = 2f
Oder r (1 + cosϴ) = 2f
Oder r = 2f / (1 + cosϴ) = f * sec2(ϴ / 2)
In der Antennentheorie müssen wir nun die Grundlagen des Koordinatensystems in Form von Sachleistungen halten. Die obige Gleichung kann in rechteckigen Koordinatensystemen unter Verwendung von x`, y`, z` geschrieben werden. Das ergibt die folgende Form.
r + r * cosϴ = √ [(x`) 2 + (y`) 2 + (z`) 2] + z` = 2f
Lassen Sie uns den Einheitsvektor herausfinden, der senkrecht zur Tangente des Reflexionspunktes ist.
f – r * cos2(ϴ / 2) = 0 = S.
Durch einige Rechenoperationen finden wir den Einheitsvektor. Es wird unten beschrieben.
n = N / | N | = – (a) `r cos (ϴ / 2) + – (a) `ϴ Sünde (ϴ / 2)
Mithilfe der geometrischen Analyse können wir nun einen Ausdruck für den Neigungswinkel finden. Es wird unten beschrieben.
tan (ϴ0) = (d / 2) Z.0
Das Z0 ist die Messung der Entfernung von der Achse zum Brennpunkt. Mathematische Ausdrücke können es auch darstellen.
Z0 = f – [(x02 + y02) / 4f]
Oder Z.0 = f – [(d / 2)2/ 4f]
Oder Z.0= f – d2 / 16f
Überprüfen wir den Wert von tan (ϴ0) nach dem Ersetzen des Wertes von Z0.
Bevor wir uns mit der Richtwirkung einer Parabolantenne befassen, informieren Sie uns über die Richtwirkung einer Antenne.
Die Richtwirkung einer Antenne ist definiert als das Verhältnis der Strahlungsintensität einer Antenne in einer bestimmten Richtung zur gemittelten Strahlungsintensität über alle Richtungen.
Die Richtwirkung wird als Parameter zur Berechnung der Gütezahl der Antenne betrachtet. Der folgende mathematische Ausdruck beschreibt die Richtwirkung.
D = U / U.0 = 4πU / P.rad
Wenn die Richtung nicht angegeben ist, ist die Standardrichtung die Richtung der maximalen Strahlungsintensität.
Dmax = D0 = U.max / U.0 = 4πUmax / Prad
Hier ist ‘D’ die Richtwirkung und hat keine Richtung, da es sich um ein Verhältnis handelt. U ist die Strahlungsintensität. U.max ist die maximale Strahlungsintensität. U.0 ist die Strahlungsintensität der isotropen Quelle. P.rad ist die gesamte abgestrahlte Leistung. Seine Einheit ist Watt (W).
U = ½ r2 * | E (r, ϴ = π) |2 * √ (ε / μ)
Für U (ϴ = π) und Ersetzen des Energiewerts E wird aus dem vorherigen Wert –
Der mathematische Ausdruck für die Parabolreflektorantenne ist unten angegeben.
εap =s * εt * εp * εx * εb * εr
Hier
εap repräsentiert die Apertureffizienz.
εs ist Spillover-Effizienz. Es kann als der Teil der Leistung definiert werden, der von der Einspeisung übertragen und von der Oberfläche der Reflexion parallel geschaltet wird.
εt repräsentiert die Effizienz der Verjüngung. Es kann als die Singularität der Streuung der Größe für das Feed-Design über die Oberfläche des Reflektors beschrieben werden.
εp gibt uns die Effizienz der Phase. Es kann als die Gleichmäßigkeit der praktischen Feldphase über die Ebene der Apertur beschrieben werden.
εx repräsentiert die Effizienz der Polarisation.
εb ist die Effizienz des Rückstands.
Und εr stellt die Fehlereffizienz dar, berechnet über die gesamte Reflektorfläche.
Mathematisches Problem
1. Eine Parabolreflektorantenne hat einen Durchmesser von 10 Metern. Das f / d-Verhältnis wird mit 0.5 angegeben. Die Betriebsfrequenz ist auf 3 GHz eingestellt. Die Antenne, die mit dem Reflektor gespeist wird, ist symmetrisch aufgebaut. Es ist auch gegeben, dass –
Gf (ϴ) = 6 cos2ϴ; wo ϴo ≤ ϴ ≤ 90o und null an jedem anderen Punkt.
Berechnen Sie nun i) die Apertureffizienz (εap). ii) Richtwirkung der Antenne. iii) Verjüngungseffizienz und Effizienz des Überlaufens. iv) Ermitteln Sie die Richtwirkung der Antenne, wenn die Aperturphasenabweichung auf π / 4 Radian eingestellt ist.
Lösung:
Wir wissen, dass der Neigungswinkel durch den folgenden Ausdruck gegeben ist.
tan (ϴ0) = [(f / 2d) / {(f / d)2 – (1/16)}]
Oder tan (ϴ0) = [(0.5 · 0.5) / {(0.5 · 0.5) – (1/16)}]
We are going to discuss and learn exhaustive usage of Actions class in Selenium across different Web operations . Actions Class in Selenium is widely used to perform various web operations such as mouse and keyboard movement which are advance webbrowser actions.
Mouse Actions
Keyboard Actions
Actions class in selenium
What is Actions Class in Selenium :
Actions Class is a class from Selenium Bundle Api from the package org.openqa.selenium.interactions to handle Critical and advance Web interactions with Users through browser Automation. Provides users with a handle to perform various Mouse and Keyboard Actions via different methods mentioned above.
We will discuss here all the Web interactions via Actions Class in Selenium, to start with We learn the Mouse Interactions and move towards KeyBoard Interactions with Actions class in Selenium.
Mouse Interactions – Actions Class in Selenium
Drag and drop in selenium
Drag and Drop in Selenium can be done in three different approaches with Actions class in Selenium :
Drag and Drop in Selenium with Action Class in Selenium via build method :
We need to have two webelements to perform Drag and Drop in Selenium such as Source WebElement (which is to be dragged) and Destination WebElement (Where the Source WebElement to be dropped, i.e. the Destination WebElement ), The below method is a customized method (which you could use to build your Framework WebUtils) which perform the Drag And Drop in Selenium and this method takes two arguments one is Source WebElement, and another one is Destination WebElement as mentioned previously:
public void dragAndDrop(By source, By destination) {
try {
WebElement sourceElement = driver.findElement(source);
WebElement destinationElement = driver.findElement(destination);
Actions builder = new Actions(driver);
Action dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement)
.release(destinationElement).build();
dragAndDrop.perform();
BASE_LOGGER.info("Successfully performed the Drag and Drop action ");
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData + " while performing DragAndDrop ");
}
}
To learn the whole concept about drag and drop and get to all the approaches to perform Drag and Drop in Selenium, click here.
ClickAndHold in Selenium
ClickAndHold is another important method from the Actions class (from org.openqa.selenium.interactions package) in Selenium to first perform left click operation over any webElement and hold it without releasing mouse.
This method is majorly used while performing the drag and drop scenarios, below is the sample code image :
MoveToElement in Selenium
MoveToElement is a method from the Actions class in Selenium to perform the movement to another WebElement (Destination Webelement), which this method takes as one respective argument.
This method is majorly used while performing the drag and drop scenarios, below is the sample code image :
Double Click in Selenium
To replicate the double click operation via mouse we need to Perform double click via Actions class in Selenium and we can do it in the below approach :
public void doubleClick(By locator) {
try {
WebElement element = driver.findElement(locator);
Actions actions = new Actions(driver);
actions.doubleClick(element).perform();
BASE_LOGGER.info("Performed the double Click on the Element : " + locator);
} catch (StaleElementReferenceException e) {
BASE_LOGGER.error("Element is not attached to the page document " + e.getCause().getMessage());
} catch (NoSuchElementException e) {
BASE_LOGGER.error("Element " + locator + " was not found in DOM " + e.getCause().getMessage());
} catch (Exception e) {
BASE_LOGGER.error("Element " + locator + " was not clickable " + e.getCause().getMessage());
}
}
The above code snippet is a method which basically takes an argument as Locator, i.e. the WebElement on which the double click has to be performed.
context click or Selenium right click
To replicate the context click or right click operation via mouse we need to Perform context click method via Actions class in Selenium and we can do it in the below approach :
public void rightClick(By locator) {
try {
WebElement element = driver.findElement(locator);
Actions actions = new Actions(driver);
actions.contextClick(element).perform();
BASE_LOGGER.info("Performed the context Click on the Element : " + locator);
} catch (StaleElementReferenceException e) {
BASE_LOGGER.error("Element is not attached to the page document " + e.getCause().getMessage());
} catch (NoSuchElementException e) {
BASE_LOGGER.error("Element " + locator + " was not found in DOM " + e.getCause().getMessage());
} catch (Exception e) {
BASE_LOGGER.error("Element " + locator + " was not clickable " + e.getCause().getMessage());
}
}
The above code snippet is a method which basically takes an argument as Locator, i.e. the WebElement on which the double click has to be performed.
Pause in Selenium
Whenever we want to have introduced any time delay between different Actions we could use the pause method in between the Actions operations, like let’s say if we want to have some few seconds of delay between drag and drop operation, then we can call the pause() method of Actions Class in Selenium in below approach :
public void pauseBetweenActions(By source,By destination, int timeUnit) {
try {
WebElement sourceElement = driver.findElement(source);
WebElement destinationElement = driver.findElement(destination);
Actions builder = new Actions(driver);
builder.clickAndHold(sourceElement).moveToElement(destinationElement).pause(timeUnit).release(destinationElement).build().perform();
BASE_LOGGER.info("Successfully performed the Drag and Drop action ");
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData + " while performing DragAndDrop ");
}
}
In the above method it takes three arguments: one source WebElement, another argument is destination element, and the last one is for timeUnit, i.e. the time delay we want to introduce using the pause() in Selenium.
Mouse hover in selenium
Mouse Hover in Selenium operation can be achieved by using Actions class in Selenium, basically, once we are in focus with any webElement and from there, we want to hover your mouse cursor to any other element by this Mouse Hover operation, and this WebElement where we want to take our mouse cursor is called as Target WebElement.
Below is the code snippet for the same :
public void mouseHover(By targetedLocator) {
try {
WebElement targetedElement = driver.findElement(targetedLocator);
Actions builder = new Actions(driver);
builder.moveToElement(targetedElement).build().perform();
BASE_LOGGER.info("Successfully performed the Mouse hover in Selenium action ");
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData + " while performing Mouse hover in Selenium ");
}
}
Keyboard actions means where the operations are directly performed from a keyboard such as lets say we are trying to perform Contrl+A together or Control+C together or performing Key up or Keydown button from keyboard while interacting with WebElements .
We can perform several Keyboard interactions with the help of Actions class in Selenium
sendKeys in Selenium :
We can perform sendKeys operation with the help of Actions class in Selenium in the below manner :
public void sendKeysWithActionClass(By locator) {
try {
WebElement element = driver.findElement(locator);
Actions actions = new Actions(driver);
actions.sendKeys("KeyBoard Data Entry ");
// Perform Keyboard Actions ex pressing Control and c together
actions.sendKeys(Keys.CONTROL);
actions.sendKeys("c");
actions.build().perform();
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
}
}
KeyUp in Selenium :
Similarly we can perform KeyUp operations with the Actions class in Selenium in the below manner :
public void keyUpWithActionClass(By locator) {
try {
WebElement element = driver.findElement(locator);
Actions actions = new Actions(driver);
actions.sendKeys("KeyBoard Data Entry ");
// Perform Keyboard Actions ex pressing Control and c together with keyUp
actions.keyUp(Keys.CONTROL);
actions.sendKeys("c");
actions.build().perform();
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
}
}
KeyDown in Selenium
We can perform the keyDown operation with the help of again Actions class in Selenium in the below approach :
public void keyDownWithActionClass(By locator) {
try {
WebElement element = driver.findElement(locator);
Actions actions = new Actions(driver);
actions.sendKeys("KeyBoard Data Entry ");
// Perform Keyboard Actions ex pressing Control and V together with keyDown
actions.keyDown(Keys.CONTROL);
actions.sendKeys("v");
actions.build().perform();
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
}
}
In this series of tutorial we will learn about all the exhaustive selenium webdriver commands starting from the very basic selenium commands to the advance Selenium webdriver commands in the below order of articles :
In Selenium Webdriver if we want to navigate or open any specific URL through our browser then we can do it in majorly two different approaches one is with the get() method and another one with navigate , we will take a look at how it could be done :
public void getUrl(String url) {
try {
driver.get(url);
BASE_LOGGER.info("Successfully navigated to the URL as : " + url);
} catch (Exception ex) {
String exceptionData = ex.getCause().getMessage();
BASE_LOGGER.error("Unable to navigate to URL : " + url + " with the error as : " + exceptionData);
}
}
The code you can write to navigate url is driver.get(“http://example.com”) whereas the driver is the Webdriver instance of the Selenium WebDriver interface.
How does the get method works internally in Selenium :
Once this get() method gets called from your test script then Webdriver reference i.e. the driver will wait till the page is loaded , actually the get() method internally triggers onload function which returns the handle to your driver reference once the page is fully loaded.
Selenium navigate forward and navigate back :
Another approach to navigate to the url with the browser history is by using the navigate() method , where the Selenium uses the history of the browser to navigate forward or navigate back with you respective URLs such as :
Selenium navigate forward
public void navigateForward() {
try {
driver.navigate().forward();
BASE_LOGGER.info("Successfully navigated forward" );
} catch (Exception ex) {
String exceptionData = ex.getCause().getMessage();
BASE_LOGGER.error("Unable to navigate with the error as : " + exceptionData);
}
}
Selenium navigate Back :
public void navigateBack() {
try {
driver.navigate().back();
BASE_LOGGER.info("Successfully navigated Back to the URL ");
} catch (Exception ex) {
String exceptionData = ex.getCause().getMessage();
BASE_LOGGER.error("Unable to navigate Back to URL : with the error as : " + exceptionData);
}
}
Selenium refresh page
We can use refresh() method from Selenium navigate
public void seleniumRefreshPage() {
try {
driver.navigate().refresh();
BASE_LOGGER.info("Successfully done the Selenium Refresh Page ");
} catch (Exception ex) {
String exceptionData = ex.getCause().getMessage();
BASE_LOGGER.error("Unable to perform Selenium Refresh Page : with the error as : " + exceptionData);
}
}
Selenium click
In order to perform any click operation with Selenium click we have to use method called click() in below approach , there are other ways to perform click operation on any of the WebElement in Selenium ie by using JavaScriptClick which is very useful sometimes depending on situations where your normal Selenium click method is working in a very stable manner , there are some cases where if you are automating with IE browser and if the Web Application under test is build in some sort of bootstrap JS then normal selenium click method might not work sometime , in those case you could use Javascript click method .
public void safeClick(By element) {
try {
driver.findElement(element).click();
BASE_LOGGER.info("Safeclick operation has been performed for the locator : " + String.valueOf(element));
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData
+ " while performing Safeclick on the element : " + element);
}
}
You can pass the element using different locator strategies(ie xpath, name, css etc) in the method called findElement() and then perform the click() method operation like above .
Selenium sendkeys
When we need to enter some text in some text box via Selenium we make use of the Selenium sendkeys() method by passing the “Text to be entered ” as the parameter in the method sendKeys(“Text to be entered”) and similar to the click() method this method is also applied to any webElement(here web text box) so we have to use driver.findElement to send the Text to that TextBox .
The Sample code goes like this :
public void enterTextIntoElement(By element, String textToBeEntered) {
try {
driver.findElement(element).sendKeys(textToBeEntered);
BASE_LOGGER.info(
"enterTextIntoElement operation has been performed for the locator : " + String.valueOf(element));
} catch (Exception ex) {
String exceptionData = ex.getCause().getMessage();
BASE_LOGGER.error("enterTextIntoElement operation has been failed for the locator : "
+ String.valueOf(element) + " with the exception i.e : " + exceptionData);
}
}
Selenium clear text field
If we want to clear any data from a previously filled textfield, we can use the method called clear() and also by the help of Keys Class in Selenium we can do so , through which we can take the Keyboard Operations directly along with keyboard shortcuts :
To clear the Data with the help of clear() method we can write in the below approach:
public void clearField(By element) {
try {
driver.findElement(element).clear();
BASE_LOGGER.info("ClearField operation has been performed for the locator : " + String.valueOf(element));
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("ClearField operation has been failed for the locator : " + String.valueOf(element)
+ " with the exception i.e : " + exceptionData);
}
}
By using the Keys class we can also clear the Text fields in the following approach.
Selenium maximize window
While working with the Browser Automation if we have to Maximize the Window in Selenium then we could use the following approaches :
Selenium Maximize Window by using Maximize() method :
public void maximizeWindow() {
try {
driver.manage().window().maximize();
BASE_LOGGER.info("Successfully Maximized the Window");
} catch (Exception e) {
BASE_LOGGER.info("Exception Occured while Maximizing the Window As : " + e.getCause().getMessage());
}
}
Selenium Maximize Window by using ChromeOptions for ChromeBrowser:
By using the below method we are setting a chrome browser instance for Webdriver in maximized mode and the returned driver session will continue to the same feature(ie maximize window )for further web operation as per the script.
public WebDriver openBrowserInMaximizeWindow(){
try {
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
WebDriver driver = new ChromeDriver(options);
}catch(Exception e){
BASE_LOGGER.error("Exception encountered with : " + e.getCause().getMessage());
}
return driver;
}
Selenium minimize window
We can minimize the window using Selenium minimize() command with the following approach :
public void minimizeWindow() {
try {
driver.manage().window().minimize();
BASE_LOGGER.info("Successfully Minimized the Window");
} catch (Exception e) {
BASE_LOGGER.info("Exception Occured while Minimizing the Window As : " + e.getCause().getMessage());
}
}
Selenium close browser:
To close the browser in Selenium we use close() method in the below approach :
public void closeCurrentWindow() {
try {
if (null != driver) {
driver.close();
BASE_LOGGER.info("Successfully closed the current Window/Browser");
} else {
BASE_LOGGER.info("Unable to close the current Window/browser instance as Its NULL");
}
} catch (Exception e) {
BASE_LOGGER.info("Exception occurred while closing the current Window/Browser");
}
}
Selenium quit browser
To quit all the browser instances in Selenium we use quit() method in the below approach :
public void quitBrowser() {
try {
if (null != driver) {
driver.quit();
BASE_LOGGER.info("Successfully QUIT Browser");
} else {
BASE_LOGGER.info("Unable to QUIT the Browser as Its NULL");
}
} catch (Exception e) {
BASE_LOGGER.error("Exception occurred while QUITING Browser");
}
}
Difference between driver.close() and driver.quit()in Selenium :
In Webpage DOM structure, the dropdown is implemented by either Select or input Tage of HTML .To work with Dropdown with Selenium and perform certain
web operations on the dropdowns, we need to use “Select” class from Selenium WebDrivers API as part of “org.openqa.selenium.support.ui” package from Selenium WebDriver.
There are 2 different problem statement or ask while working with the Selection of DropDown in Selenium :
Selection of single Element in a Dropdown at a time
In the below approach we can work with Dropdown:
Step One :
You have to create a handle for the DropDown WebElement using Select class Object creation in the below manner :
Select select = new Select(WebElement webelement);
Step two :
There are 3 different approaches to select the value from the dropdown in Selenium , we could use any of the below methods to select the value from dropdown in Selenium :
Here is the below Approach we can take to select value from Dropdown :
Dropdown in selenium- Approach One : In the Approach One you can use the text which is visible of the Desired Selection of the Webelement .
public void selectFromDropDownByText(By locator, String visibleText) {
try {
Select dropDownElement = new Select(driver.findElement(locator));
dropDownElement.selectByVisibleText(visibleText);
BASE_LOGGER.info("SelectFromDropDownByText operation has been performed for the locator : "
+ String.valueOf(locator));
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData
+ " while performing selectFromDropDownByText on the element : " + locator);
}
}
In the above method you can pass the locator of the dropdown and the visible text which you want to select from the dropdown then it will perform the desired operation is Selecting the expected dropdown element .
Dropdown in selenium- Approach Two :
In this Approach you select the Webelement by using the value attribute of the desired WebElement’s selection from the dropdown :
public void selectFromDropDownByValue(By locator, String visibleText) {
try {
Select dropDownElement = new Select(driver.findElement(locator));
dropDownElement.selectByValue(“Desired Webelement’s value ”);
BASE_LOGGER.info("selectFromDropDownByValue operation has been performed for the locator : "
+ String.valueOf(locator));
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData
+ " while performing selectFromDropDownByValue on the element : " + locator);
}
}
In the above method you can pass the locator of the dropdown and the value attribute of the WebElement of which you want to select from the dropdown then it will perform the desired operation is Selecting the expected dropdown element .
Dropdown in selenium- Approach Three :
In this Approach you select the Webelement by using the index(order of the WebElement in the HTML select tag ) of the desired WebElement’s selection from the dropdown, index generally starts from 0 :
public void selectFromDropDownByIndex(By locator, String visibleText) {
try {
Select dropDownElement = new Select(driver.findElement(locator));
dropDownElement.selectByIndex(5);
BASE_LOGGER.info("selectFromDropDownByIndex operation has been performed for the locator : "
+ String.valueOf(locator));
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData
+ " while performing selectFromDropDownByIndex on the element : " + locator);
}
}
In the above method you can pass the locator of the dropdown and index/order of the WebElement(in the Select Tag of the Dropdown ) of which you want to select from the dropdown then it will perform the desired operation is Selecting the expected dropdown element .
Selection of multiple Elements in a Dropdown at a time
It depends on the HTML DOM structure and implementation whether any dropdown element is allowed to have multi selection of Elements . To select multiple elements in Selenium we have to follow below two steps :
Step One : Check whether the DropDown WebElement allows the multi selection by using the method isMultiple() , this returns boolean as true or false.
Step Two : if the above step returns true then the dropdown allows multi selection .And after this we can use the above discussed any/all of the three different approaches to select multiple values and perform any desired operations ..
So to conclude here below is the sample code :
WebElement element =driver.findElement(By.xpath("XPATH OF THE DropDown"));
Select selectMultiple = new Select(element);
if(selectMultiple.isMultiple()){
selectMultiple.selectByIndex(1);
selectMultiple.selectByIndex(2);
//Similarly We could use other approaches/method for selecting dropdown elements such as selectByVisibleText or selectByValue
}
Drag and drop in selenium :
In the segment of tutorial we will learn all the different different approaches of performing Drag and Drop in Selenium such as :
What is drag and drop in Selenium and where its used :
Drag And Drop is a specific operation when users navigate to your web applications and try to perform operation(dragging by mouse move) on some webelement which can move freely over the application and can be dropped in some other location of the webpage of that application .
Here the element which is being dragged is called a Source WebElement and the element where it’s being dropped is called a Destination WebElement .
To Perform the above scenarios via Automation with Selenium we need to drag and drop functionalities provided by Selenium .
Different Approaches of Drag and Drop in Selenium :
Drag and Drop in Selenium using Build() method :
How Build() method internally works :
build() method from the Actions class in Selenium which is part of the package org.openqa.selenium.interactions internally generates a composite actions
by combining all the actions which have been called or triggered before calling the build() method.
For an example :
new Actions(driver).clickAndHold(sourceElement).moveToElement(destinationElement)
.release(destinationElement).build();
The above statement to perform drag and drop operation build is being used to bind the previous actions such as clickAndHold, moveToElement and release methods.
Here is the below code snippet to perform the Drag and Drop in Selenium using build method of Actions class:
public void dragAndDrop(By source, By destination) {
try {
WebElement sourceElement = driver.findElement(source);
WebElement destinationElement = driver.findElement(destination);
Actions builder = new Actions(driver);
Action dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement)
.release(destinationElement).build();
dragAndDrop.perform();
BASE_LOGGER.info("Successfully performed the Drag and Drop action ");
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData + " while performing DragAndDrop ");
}
}
Drag and Drop in Selenium using dragAndDrop() method :
How dragAndDrop() method internally works :
dragAndDrop(sourceWebElement,destinationWebElement) method basically takes two arguments one is source and another one is destination webelement. dragAndDrop removes the need of clickAndHold,moveToElement,release methods in Action class, it internally handles all the scenarios which are performed by these methods .
Here is the below code snippet for performing dragAndDrop with the method dragAndDrop :
public void dragAndDropOps(By source, By destination) {
try {
WebElement sourceElement = driver.findElement(source);
WebElement destinationElement = driver.findElement(destination);
Actions builder = new Actions(driver);
builder.dragAndDrop(sourceElement,destinationElement).perform();
BASE_LOGGER.info("Successfully performed the Drag and Drop action ");
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData + " while performing DragAndDrop ");
}
}
Drag and Drop in Selenium using dragAndDropBy() method:
How dragAndDropBy(WebElement source, int xOffset, int yOffset) method internally works :
The method dragAndDropBy() takes 3 arguments which are :
Source WebElement : the Element which is dragged ie the source element
xOffset : horizontal move offset of the destination location
yOffset : vertical move offset of the destination location
Internally this method takes the source webelement and moves and releases it to the destination location. This method is useful if you want to move any source webelement to any pixel locations .
Below is the code snippet for the DragAndDropBy in Selenium :
public void dragAndDropByOps(By source, int xOffSet,int yOffSet) {
try {
WebElement sourceElement = driver.findElement(source);
Actions builder = new Actions(driver);
builder.dragAndDropBy(sourceElement,xOffSet,yOffSet).build().perform();
BASE_LOGGER.info("Successfully performed the Drag and Drop action ");
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData + " while performing DragAndDrop ");
}
}
Visit here for the rest of the advanced sets of Intermediate Selenium webdriver commands.
Advance Selenium WebDriver Commands-Answers:
Double click in selenium:
To replicate the operation ie double click in Selenium via mouse we need to Perform double click via Actions class in Selenium and we can do it in the below approach :
public void doubleClick(By locator) {
try {
WebElement element = driver.findElement(locator);
Actions actions = new Actions(driver);
actions.doubleClick(element).perform();
BASE_LOGGER.info("Performed the double Click on the Element : " + locator);
} catch (StaleElementReferenceException e) {
BASE_LOGGER.error("Element is not attached to the page document " + e.getCause().getMessage());
} catch (NoSuchElementException e) {
BASE_LOGGER.error("Element " + locator + " was not found in DOM " + e.getCause().getMessage());
} catch (Exception e) {
BASE_LOGGER.error("Element " + locator + " was not clickable " + e.getCause().getMessage());
}
}
The above code snippet is a method which basically takes an argument as Locator i.e. the WebElement on which the double click has to be performed.
Contextclick in selenium :
To replicate the context click or right click operation via mouse we need to Perform context click method via Actions class in Selenium and we can do it in the below approach :
public void rightClick(By locator) {
try {
WebElement element = driver.findElement(locator);
Actions actions = new Actions(driver);
actions.contextClick(element).perform();
BASE_LOGGER.info("Performed the context Click on the Element : " + locator);
} catch (StaleElementReferenceException e) {
BASE_LOGGER.error("Element is not attached to the page document " + e.getCause().getMessage());
} catch (NoSuchElementException e) {
BASE_LOGGER.error("Element " + locator + " was not found in DOM " + e.getCause().getMessage());
} catch (Exception e) {
BASE_LOGGER.error("Element " + locator + " was not clickable " + e.getCause().getMessage());
}
}
For the detailed Advance Selenium webdriver commands visit here.. Also to get understanding of the Actions class in Selenium and its implementations visit here .
Critical FAQs :
What is manage() in Selenium ?
driver.manage() returns an reference of implementation of WebDriver.Options Interface.Options interface is an interface for managing and handling actions in a browser menu such as :
Cover Image Credit – Service Depicted: Air Force Camera Operator: SSGT LOUIS COMEGER, Hammer Ace SATCOM Antenna, marked as public domain, more details on Wikimedia Commons
To define a helical antenna, we must know the correct definition of the antenna previously. As per to IEEE standard definitions of antennas or radiators,
“An antenna is a medium for transmitting and receiving radio waves”.
There are several adaptations of antennas. Some of them are – dipole antennas, horn antennas, log-periodic antennas, patch antennas, broadband antennas etc.
The helical antennas or helix antennas are one of the categories of broadband antennas. It is one of the most straightforward, primary and realistic antennas with a helical structure, made up of conducting wire-wound.
Helical antennas or helix antennas generally come with a ground plane which has the ability to accept distinct forms. To establish a typical helix connection with the ground plane, the ground plane’s diameter should be minimum of 3*λ/4. Although, the plane may be transfused into a cylindrical shaped crater. At the feed point, the transmission lines meet with the antenna.
The geometrical description of a helix antenna typically consists of N number of turns, the diameter D and the distance between two helical loop S.
The whole length is given by –> L = N S.
The conductive wire’s whole length is given by –> Ln = N L0 (It carries the current primarily obviously!)
Or, Ln = N √ (C2 + S2); L0 = √ (C2 + S2)
L0 represents the dimension of the wire between two helical loops. It actually gives the length.
C represents the whole circumference of a spiral loop, and it is given by -> π D.
There is another spiral or helix antenna’s parameter, which is also very important. It is represented by the Greek alphabet alpha(α) and termed as ‘pitch angle’. This angle is generally the measurement of the line’s angle – normal to the helix wire and a steep ground to the helix axis. The mathematical expression is given below.
α = tan-1 (S/C)
or, α = tan-1 (S/ π D)
By carefully observing the equation, it can be concluded that when the angle tends to 0 degrees, the winding gets trampled; as a result, the helix antenna gets reduced and becomes similar to a simple loop antenna. Again, when the angle becomes 90 degrees, the antenna becomes a linear wire. When the angle is less than 90 degrees and greater than 0 degrees, then a practical helix has a finite value of circumference.
The architectural parameters can change the radiation properties of the helix antennas. Controlling the geometrical parameters will vary the radiation properties associated with the wavelength. The input impedance has a relation with the pitch angle and conducting wire’s size, as a change in pitch angle values, and the size of the wire will change the input impedance values.
Helical antenna typically shows elliptical polarization, although they can be designed to show circular and linear polarization.
Operational Modes
Helix antennas have the capability to function in many types of operational modes. There are two significant and essential operational modes that we will discuss in detail in the latter part of this article. The two modes are –
The three-dimensional figures of both the types of mode of operations are given below.
As we can see in the standard figure, it has a maximum in an imaginary plane which is normal to the axis, and its null is along the axis. The power pattern has a close similarity to the shape of the circular loop.
Now, the maximum is along the helix’s length for the end-fire mode, and the power pattern is similar to the end-fire array. That is why the mode is named as ‘End Fire Mode’.
The axial mode of operation has more preference over the standard mode of operation because it is more realistic or practical, has better efficiency and can show circular polarization with a broader bandwidth. An elliptically polarized antenna can be described as the summation of the two extraneous lined mechanisms in phase-time quadrature.
As discussed previously, the antenna’s helical mode has its maximum radiation is directed to a plane normal to the helix axis, and the null radiation is along its axis. The normal mode of operation of helix antenna or broadside mode operation is achievable by comparing the wavelength, that is N L0 << λ0.
The helix architecture comes down to a loop of a diameter D as the pitch angle comes to 0 to a lined wire with a length of S while approaching to 90 degrees. Nos, as the helix’s geometry, became a loop and a dipole, the far-field radiation in this mode of operation can be represented respectively by Eϕ and Eϴ components of the dipole and the spiral loop.
The helix can be described as N number of small loops and the same number of small dipoles. They are linked with each other in a series manner. The arenas are calculated by using the superposition of the other fields from the rudimentary parts. The loop’s axes and the dipole’s axes coincide with the helix’s axis.
As this model has small dimensions, the current is assumed to be constant. Its operation can be defined by the summation of the fields radiated by a smaller-loops, having a diameter of D and a short dipole having a length of S.
The far-field electric field is given as –
Eϴ = j * η * k * I0 * S * e-jkr Sinϴ / 4πr
The Eϕ part is given by –
Eϕ = η* k2 * (D/2)2 * I0 * e-jkr Sinϴ /4r
The ratio of Eϴ and Eϕ gives the axial ratio. The mathematical expression is given below.
AR = | Eϴ | / | Eϕ |
Or, AR = 4S / πkD2
Or, AR = 2λS/ (πD)2
The pitch angle is given as – α = tan-1 (π D/2λ0)
Axial Mode of operation for Helical Antenna
The axial mode of operation has more preference over the standard mode of operation because it is more realistic or practical, has better efficiency and can show circular polarization with a broader bandwidth.
This mode is achieved by setting up large S and D. There are some requirements for achieving circular polarization. The range of the circumference of the helix should be in the below-given range.
4/3 > λ0/C > ¾
The pitch angle also has a limited range. The range of the pitch angle is given below.
12o ≤ α ≤ 14o
The terminal impedance range for this mode of operation is between one hundred ohms to two hundred ohms.
The following mathematical operation calculates the gain. For the following equation, S gives the distance between two turns, and N represents the total number of turns in a helical antenna.
G = 15 (C / λ) 2 * (NS / λ)
The half-power bandwidth of helical antenna for this mode of operation is given by following mathematical expression.
The input impedance is represented as ‘R’. The mathematical equation for ‘R’ is – R = 140 (C / λ0).
The half-power bandwidth of helical antenna for this mode of operation is given by following mathematical expression. It has the accuracy of around plus-minus twenty percent. It is a measurement of angle and has a unit in degrees.
HPBW = 52 λ3/2 / C * √ (NS)
The full null bandwidth of helical antenna for this mode of operation is given by following mathematical expression. It represents the measure of beamwidth among the Nulls. It has also unit in degrees.
FNBW = 115 λ3/2 / C * √ (NS)
D0 represents the directivity of the antenna. The mathematical equation is –
D0 = 15 * N * C2S / λ03
The following mathematical term gives the Axial Ratio or the AR.
AR = 2N+1 / 2N
The following expressions give the generalized far-field pattern.
E = sin (π/ 2N) cosϴ sin [ (N/2) * Ψ] / sin (Ψ /2)
Ψ is given by another mathematical equation, and that is further given as Ψ = k0[S * cos ϴ – (L0/p)]
The value of ‘p’ for general end-fire array is
p = (L0/ λ0) * (S/ λ0 + 1)
The value of ‘p’ for Hansen-woodyard end-fire radiation is
p = (L0/ λ0) * [S/ λ0 + {(2N+1)/2N)}]
Helical Antenna Applications
The helical antenna has several applications in modern communication technologies. It has some unique applications because of its design and radiation patterns. Some of the spiral antenna applications are listed below.
In this tutorial of selenium interview questions, we will cover all the critical Selenium interview questions questions along with advanced Selenium Automation framework interview questions .This tutorial is divided into three segments :
NOTE : The focus of this Selenium interview Questions and Answers tutorial is to discuss most critical and complex questionnaire as you might already be aware of the basic questionnaires on .
Initially we will start with Advance Selenium Framework interview questions and answers and then move forward Critical/Advanced selenium interview questions and answers and then lastly we finish this tutorial with intermediate levels so that you can prepare well.
How many popular types of Selenium framework are there?
There are four different types of Selenium framework are there, which are :
How many different approaches are there to design the Page Object Model framework?
What is Page factory in selenium ?
PageFactory is a class from Selenium library from a package called as org.openqa.selenium.support which helps to design the Page Object Design pattern in the Page Object Model framework, which has few implementations such as :
What is the key design difference between Classic Page Object Model and Customized Page Object Model?
So each webpage should have one interface to store locators and 1 class for the page level web operations and their respect assertions.
What is the design principle of the Page Object Model Framework?
The Design principle of the Page Object Model framework is based on principles or concepts, which are :
So, All the page actions(different operations of the web page functionality)reside on the respective Page classes.
Mention the key differences among Page Object Model and the Hybrid Page Object Model?
The difference between Page Object Model and Hybrid Page Object Model is that the Hybrid Page Object Model is based on Page Object Model framework Design along with the extensive features of the Data-Driven Framework and supports a wide variety of the Data Operations Utilities such as below :
What is the language Parser used in the Cucumber -BDD framework?
The language parser used in the Cucumber -BDD framework is Gherkin.
What is the Gherkin language?
Gherkin is DSL (Domain Specific Language) and English like language, which is very much readable and understandable (i.e., give(), when(),then(), etc.)
What do you mean by given() in Gherkin?
Given () method states that some situation or scenario is given or stated.
What do you mean by when() in Gherkin?
When () means when you perform some operations.
What do you mean by then() in Gherkin?
then() is used as assertions after the operations are performed by given().when() .
What CI tool do you use as part of the framework?
We use Jenkins (majorly) as an open-source CI tool.
What build tool do you use as part of the framework?
We use build tools such as Maven/Gradle/ant (it was previously used).
What is the key difference between maven and Gradle?
Gradle is the advanced version of what maven perform, and along with that, we can create tasks as well (like the feature that was available in ANT ), so we can consider on a high level :
Gradle =>> Maven +Ant
As part of Selenium C#, we use Gallio as a build tool.
What’s the Unit Test framework that we use as part of the Selenium Automation framework?
We majorly use TestNG/JUnit(JUnit is less used nowadays) as part of the unit test framework while building the Automation framework with Selenium.
As part of the Selenium C# framework, We use NUnit/MbUnit as a unit test framework.
What approach can be taken into consideration while designing the Reporting tools as part of the Selenium framework?
There is various reporting approach we could take while designing the framework :
Apart from these open-source reporting tools integration, we can also opt for some advanced reporting features or dashboard to build with the below technologies and tools :
How do you use ELK to build the reporting dashboard with Selenium Framework :
There is a basic base design principle which is being used to design the Automation dashboard, which are :
How do you build an HTML customized report?
You can make use of different listeners and reporters interfaces provided by TestNg to record the events and their respective data sets and create HTML by using those data sets and the HTML tags in the report utils.
What are the challenges that you have faced while developing a framework?
There are different challenges you can mention as per your experience gives while developing the framework, for example :
Mention which all Selenium components you have used in your Selenium Framework?
You can mention depending on your framework.
What is the flow of your Automation framework?
You can mention the flow of execution of your framework depending on your Framework flow and the tools that you have used; below is an example you can mention :
CI(Jenkins) → Build Tools (Maven/Gradle) → Unit Test Framework (TestNg) → TestNg.xml ->> TestClasses → BaseTest(Every Test Class extends Base class as baseTest where the @beforeClass /@BeforeSuite @afterClass etc exits )–>TestMethods → PageClasses→ Page Methods→ WebUtilities(reusable class for the WebAction utilities )–>> Reporting Utils
What do you understand by Data-Driven framework, and where do we use a Data driven framework?
A Data-Driven framework is basically a framework that is driven by Data. Having said that, in which the application or the type of the application where the Same Test cases or scenarios is executed several times with the different data sets or the source or Data is very vast like in the case where we need to interact a variety of Data sources there we use Data-driven framework.
The different Data Source can be :
How to explain the selenium automation framework in an interview?
There are different approaches you can take to explain the selenium automation framework in an interview; the best possible approach could be the modular approach, which is to break down the explanation into different separate modules, such as :
Let’s Discuss in Detail :
Type of the Framework and Key and unique features of the Framework :
You need to mention the type of the framework such as Hybrid Framework, page object model framework, hybrid Page Object Model framework, etc.
You need to mention the unique features of the framework, such as for example :
Tools and Technologies used in Selenium framework :
You can mention the tools and technologies used while developing the framework, such as :
The flow of the execution of the Selenium Framework :
You can mention the flow of the framework execution, i.e., how do you trigger the test suites and how it flows to the test cases/methods and till the Framework Utils such as webutils, data utils, etc. You can refer to the above question where we discussed how to explain the flow of the execution of the Selenium framework.
Different Critical Scenarios handled by your framework :
In this module, you can discuss the critical features that have been automated as part of your application automation with your framework. There can many use cases or features that you can mention here, such as :
How to design logging scenarios in the Selenium framework?
You can use log4j for logging, or you can use real-time logging and debugging dashboard implementation with Graylog, which basically uses ElasticSearch in the backend for real-time logging and debugging details.
What are the design patterns you have used while designing the framework?
You can use different Design patterns as per the need and design of the Automation framework, such as :
Critical or Advance Selenium Interview Questions :
How many ways can you run your automation script parallelly?
There are multiple ways and approaches through which you can run your test scripts parallelly, such as :
Maven :
Using surefire plugin :
<forkCount>5</forkCount>
<reuseForks>true</reuseForks>
Here fork count represents the number of parallel threads count.
What is the difference between setSpeed() and sleep() methods?
setSpeed() method in Selenium basically sets the speed of the execution of each and every action/command.
So let’s say if you setSpeed(“2000”), then every line of execution will be delayed by 2000 milliseconds.
On the other hand, Thread.sleep() will introduce a 3000 milliseconds delay (it will suspend the thread for the specific operation ).
Hence sleep() is applied to 1 operation; on the other hand, setSpeed() introduces the delay for each and every operation and thus setting the speed of the execution.
How to verify the presence of a ScrollBar with Selenium?
To verify horizontal scroll bar in webpage with Selenium, we use Javascriptexecutor in the below manner :
Mention the ways to achieve synchronization in WebDriver?
We can handle synchronization in Selenium webdriver by using different wait mechanism :
Mention the key differences between TestNg @BeforeTest and @BeforeMethod ?
In TestNg @BeforeTest and @BeoreMethod has different aspects, are:
List the different types of WebDriver APIs present in Selenium?
How many ways you can achieve headless execution with Selenium?
We can use the below drivers to achieve headless automation with Selenium:
What is Fluent Wait In Selenium WebDriver?
With FluentWait, you can set a maximum amount of time(let’s say 3 minutes ) to wait to meet a specific condition, and during that time, you will continuously poll or check with a certain frequency (very small unit of time, let’s say 3 secs )to check.
If the condition is met, then it will return true, and if not, it will throw an “ElementNotVisibleException” exception.
The syntax of fluentwait in Selenium is :
Wait fluentWait = new FluentWait(driver).withTimeout(100, TimeUnit.SECONDS)
.pollingevery(2, TimeUnit.SECONDS)
.ignoring(ElementNotVisibleException.class);
Tell us some Selenium exceptions that you have encountered while working with` Selenium WebDriver?
How do you delete cookies in Selenium?
The command to delete the cookies in Selenium is :
driver.manage().deleteAllCookies();
Explain the approach that how do you read the javascript variable in selenium webdriver?
We need to use JavascriptExecutor to be able to do so.
How to clear a field in selenium without using a clear() method?
We can clear any field without using the clear() method in the below approach :
We can use the Keys class in Selenium to achieve the same :
WebElement element = driver.findElement(By.id("id_of_Element"));
element.sendKeys(Keys.chord(Keys.CONTROL, "a"));
element.sendKeys(Keys.DELETE);
How to rerun the failed test cases in selenium?
We can rerun the failed test cases in Selenium in the below two approaches :
With auto-generated TestNG-failed.xml :
After the test execution (ran from testng.xml), TestNG automatically generates TestNG-failed.xml; you can rerun the same XML to run the failed tests ONLY.
By implementing IRetryAnalyzer interface from testNg :
By implementing the interface IRetryAnalyzer we can automatically rerun the failed test cases with TestNg :
If you implement the IRetryAnalyzer you can auto rerun failed test with TestNg :
public class Retry implements IRetryAnalyzer {
int counter = 1;
int retryMaxLimit = 3;
public boolean retry(ITestResult result) {
if (counter < retryMaxLimit) {
counter++;
return true;
}
return false;
}
}
How to Highlight Element in Selenium WebDriver?
We can use JavascriptExecutor to set the color of the Webelement by mentioning the element.
We can use the Actions class in Selenium to perform the DoubleClick operations in the below manner. The below method takes an argument on which you have to perform DoubleClick.
public void doubleClick(By locator) {
\t\ttry {
\t\t\tWebElement element = driver.findElement(locator);
\t\t\tActions actions = new Actions(driver).doubleClick(element);
\t\t\tBASE_LOGGER.info("Performed the double Click on the Element : " + locator);
\t\t} catch (StaleElementReferenceException e) {
\t\t\tBASE_LOGGER.error("Element is not attached to the page document " + e.getCause().getMessage());
\t\t} catch (NoSuchElementException e) {
\t\t\tBASE_LOGGER.error("Element " + locator + " was not found in DOM " + e.getCause().getMessage());
\t\t} catch (Exception e) {
\t\t\tBASE_LOGGER.error("Element " + locator + " was not clickable " + e.getCause().getMessage());
\t\t}
\t}
How to scroll in selenium?
We need to use Javascript to perform the scrolling, and the below method provides an advanced approach to scroll into element till the element is visible, which is scroll into view :
public void scrollIntoView(By locator) {
try {
JavascriptExecutor executor = (JavascriptExecutor) driver;
WebElement element = driver.findElement(locator);
executor.executeScript("arguments[0].scrollIntoView(true);", element);
BASE_LOGGER
.info("scrollIntoView operation has been performed for the locator : " + String.valueOf(element));
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData
+ " while performing scrollIntoView on the element : " + locator);
}
}
How to get all links on the page in selenium?
We can use By.tagName(“a”) to fetch all the links that are available on the page as link refers to the tag called as a; the method goes in the below manner :
public List<WebElement> getAllLinks() {
try {
List<WebElement> allLinks = driver.findElements(By.tagName("a"));
int numberOfLinks = allLinks.size();
BASE_LOGGER.info("Number of Links in the Current Page is : " + numberOfLinks);
BASE_LOGGER.info("GetAllLinks operation has been performed for the Current Page : ");
return allLinks;
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error("Error encountered i.e : " + exceptionData
+ " while performing GetAllLinks for the Current Page :");
return null;
}
}
How to find the number of iframes on a page in Selenium?
We can use the below method to find the number of iframes in a page in Selenium :
public int numberOfIframesInPage() {
try {
JavascriptExecutor exe = (JavascriptExecutor) driver;
Integer numberOfIFrames = Integer.parseInt(exe.executeScript("return window.length").toString());
BASE_LOGGER.info("Number of IFrames in the current Window are : " + numberOfIFrames);
return numberOfIFrames;
} catch (Exception e) {
BASE_LOGGER
.error("Exception occurred in Finding numberOfIframesInPage with : " + e.getCause().getMessage());
return 0;
}
}
How to switch to default frame in selenium webdriver?
We can use switchTo().defaultContent() method to switch to default frame in Selenium Webdriver:
public void switchToDefaultFrame() {
try {
driver.switchTo().defaultContent();
BASE_LOGGER.info("Switched to Default Content ");
} catch (Exception e) {
BASE_LOGGER.error("Exception Occurred while switching to default Content ");
}
}
How to handle tabs in selenium?
We can use a List to store all the tabs available and use driver.getWindowHandles() to store the tabs, and once after this, we can handle tabs one by one in the below approach, such as :
public void switchToTab(int indexOfTab) {
try {
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(indexOfTab));
BASE_LOGGER.info("Successfully switched to tab with tab index as : " + indexOfTab);
} catch (Exception e) {
String exceptionData = e.getCause().getMessage();
BASE_LOGGER.error(
"Unable to Switch to Tab for :" + indexOfTab + " i.e failed with exception as : " + exceptionData);
}
}
Intermediate selenium interview questions
Is WebDriver a class or an interface?
Webdriver is an interface where all the driver classes such as ChromeDriver, FirefoxDriver create an object and have reference to the Webdriver interface’s reference.
Which one is faster, XPath, or CSS?
CSS is faster than XPath.
Why CSS is faster than XPath?
Every browser engine is different, and hence parsing strategy and engine implementation are different through the written XPath. That is why parsing XPath becomes inconsistent at times; for example, IE does not have its own engine implementation to parse XPATH; hence Selenium injects its own native XPath engine to parse XPATH in IE.
What is heightened privileged browsers?
When the browsers are opened up with some predefined settings (instance with special privileged mode )such as with certain Profiles or Certificates, then it’s called heightened privileged browsers sessions.
What is headless browser Selenium and how we perform headless browser testing?
A headless browser is a simulation program for the browser where we don’t have a UI, but we still can run Application under test in invisible mode
and perform the desired web operation in the background.
We use HeadLess browser drivers such as HTMLUNIT driver or phantomJS Driver to perform headless browser testing.
Selenium vs. puppeteer ?
There are several differences between Selenium and puppeteer (which is a new tool compared to Selenium and developed by Google Chrome DEV)
We will discuss here the comparison between Selenium VS Puppeteer in different aspects :
HardAssert vs SoftAssert ?
Both the assertion approaches are from TestNg, and each of them has its respective pros and cons
When you are under the circumstances where you need to have an assertion that’s obvious, i.e., without that step, the remaining steps of the script do not make sense to be executed, then you can put Hard Assert there.
How to set the window size in selenium?
We can create an object of Dimension class and pass that object to setSize() method :
Dimension dimension = new Dimension(480,700);
driver.manage().window().setSize(dimension);
What is the version control system you use while working with Selenium?
You can mention whatever VCS you use, such as Github, SVN, etc.
How to clone a git repo?
We can clone the git repo by using :
Git clone repo
How to pull the Git repo code?
Git pull remoteRepoURL branchName
How to push the code to git repo?
Git push remoteURL branchName
How to set the Remote?
git remote add ProvideARemoteName remoetURL
How to verify the available remotes?
Git remote -v
How to check which remote URL you currently are in?
git config --get remote.origin.url
How can you integrate your framework with Jenkins?
As part of the Selenium Automation framework, we are using build tools(such as Maven/Gradle), and we can create a Jenkins Job and connect the Maven/Gradle by providing the configuration with VCS (i.e., Github, etc.)
What are the disadvantages of Sikuli?
How to perform database testing using selenium?
We can perform database testing using selenium in the below modular approach :
Here is below code snippet for the above steps :
Selenium Database connection Setup with JAVA JDBC and creates a DB statement :
static Connection connection = null;
private static Statement statement;
public static String DataBase_URL = "DB_URL";
public static String DataBase_USER = "DB_UserName";
public static String DataBase_PASSWORD = "DB_password";
/* This method Creates the connection with Java JDBC and return it to the Test method to use along with statement
*/
@BeforeTest
public void setUp() throws Exception {
try{
String dbClass = "com.mysql.cj.jdbc.Driver";
Class.forName(dbClass).newInstance();
Connection con = DriverManager.getConnection(DataBase_URL, DataBase_USER, DataBase_PASSWORD);
statement = con.createStatement();
}
catch (Exception e)
{
e.getCause().getMessage().toString();
}
}
Use the statement to query the DB with SQL :
@Test
public void test() {
try{
String queryData = "select * from TableName";
ResultSet res = statement.executeQuery(queryData);
while (res.next())
{
System.out.print(res.getString(1));
System.out.print(" " + res.getString(2));
}
}
catch(Exception e)
{
e.getMessage();
}
}
Closing the Data Connection :
This step is very important; otherwise, we may end up creating multiple database connections without closing them after the usage, which may cause several issues.
Here is the code snippet for the same :
@AfterTest
public void tearDown() throws Exception {
if (connection != null) {
connection.close();
}
}
How to verify the background color and color of a WebElement using Selenium?
We need to use a method called getCssValue(“color”) for retrieving the colour of a webelement and getCssValue(“background-color”) to pull the background colour of a webelement.
Getting tooltip text of a WebElement is nothing but getting the title attribute of the Webelement in the below manner :
public String getToolTipData(By locator){
WebElement element=driver.findElement(locator);
return element.getAttribute("title");
}
What is StaleElementException?
Stale Element means that when a Web element is no longer attached with the DOM/WebPage which was present previously. In that case, Selenium throws a staleelementexception.
This may happen for several multiple reasons like due to AJAX or JavaScript calls which changes the state
of the element makes it unavailable/detached from DOM.
Conclusion : With these we are done with the Sets of Critical Selenium interview questions covering Selenium Framework interview questions , Read through here to get in depth concepts of Selenium to understand the architecture of Selenium.
The fluid mechanics can be elaborated as the study of fluid and fluid systems for their physical behaviour, governing laws, actions of different energies and different flow pattern.
The fluid is sub-divided into two types :
Liquid
Gas
The fluid mechanics is the subject of engineering which will be useful in many engineering discipline. The subject of fluid mechanic is important in mechanical engineering, civil engineering, chemical engineering and environment engineering etc.
Even the study of geology, geophysics, ocean and nano science also requires some knowledge of fluid mechanics and fluid dynamics.
It is interesting for you that some basic laws of fluid mechanics is involved in primary and secondary education, so it can be expected that it is familiar subject for you.
What are the fluid mechanics branches?
There are three branches of fluid mechanics based on forces and energy.
Hydrostatic:
The hydrostatics can be defined as fluid mechanics studying when the fluid or fluid element at rest. It means there is no fluid flow. There are no shearing stresses.
We can take an example of fluid at rest like a dam, pond etc.
The dam is very known example of hydrostatic branch. In holidays you might have visited some famous dam near you.
Kinematics:
The kinematics is the study of fluid mechanics about fluid motions like translation, rotary or deformation. Remember-> There is no consideration of forces and energy acting on fluid (Fluid in motion) in this study.
Here, the fluid is flowing so we can take example of flowing fluid in river, canal etc.
Dynamics:
The fluid dynamics is a complete study of flowing fluid. It studies velocity, acceleration, forces and energies acts on the fluid in motion.
Here, the study of flowing fluid (Fluid in motion) is carried out by considering forces and energy acts on it. The example of fluid dynamic are fuel flow inside diesel fuel injector, liquid flow inside pump, fluid flow inside turbine etc.
Fluid flow | What is fluid flow?
When gas or liquid is travelling or moving fluid from one point (destination) to another point, we can call it fluid flow.
Let’s understand in another word, the trend of continuous deformation of fluid is known as fluidity. The action of this continuous deformation is known as fluid flow.
For example flow of wind, flow in the river, waves in the sea, liquid flow in pipelines etc.
Classification of fluid
In common term, there are two types of fluid as given below,
Ideal fluid
Real fluid
What is the ideal fluid?
First, keep it in mind “there is no existence of ideal fluid in nature and it is imaginary fluid”. In practical purpose, we are considering water and air as an ideal fluid for many studies because of its lower viscosity.
The water is incompressible, so it is closer to an ideal fluid as compared to air.
Ideal fluid possess the following characteristics,
The ideal fluid possesses no viscosity. It means that the friction does not exist in the fluid. The ideal fluid is our imagination of standard fluid with superior characteristics. In nature, there is always frictional resistance whenever any motion exists.
What is real fluid?
The all fluid in nature can be considered as real. Let’s see why?
It possesses most of the practical characteristics,
Viscous
Compressible
Friction
Surface tension
Principles of fluid dynamics
Some of the basics principles of fluid dynamics are enlisted below for your information. The study of each principle in detail with our next articles will take you in-depth of fluid dynamics.
These principles are helpful since many of the approaches and techniques of analysis used in fluid mechanics problems. It will be well understood when you come across real problems on fluid mechanics.
Fluid Mechanic applications
The fluid mechanics subject encircles numerous applications in domestic as well as industrial. Some of the applications are enlisted below,
The water distribution channel network and pipelines in domestic and industrial.
The hydraulics machinery and hydraulic structures are designed based on fluid mechanics. Hydraulics Machinery: Turbines, pumps, valves, fluid couplings, actuators etc.
Hydraulic structures: Canal, dams, weirs, overhead tanks etc.
The fundamental of fluid dynamics can be used to design supersonic aircraft, missiles, gas turbine, rocket engines, torpedo, submarine etc.
The power plants like hydroelectric power, thermal (steam) power, gas turbine power uses fluid mechanics.
The fluid mechanics have vast applications in measurement devices of pressure, velocity and flow measurement instruments.
Pressure measurement: Bourdon tube pressure gauge, vacuum gauge, manometer etc.
Velocity and flow measuring instruments: Pitot tube, current meter, venturi meter, orifice meter, rotameter etc.
Some of the scientific subjects like oceanography, meteorology, geology etc. also require fluid dynamics.
The pneumatics and hydraulic various fluid control devices
Even if we consider blood flowing inside the human vein possess fluid dynamics
In nature, there are so many processes governed by fluid mechanics and fluid dynamics laws. Example: Rise of groundwater to top of the tree, rainwater cycle, wind flow and waves, ocean waves, weather patterns etc.
Let’s understand some practical applications of fluid dynamics, which will become very familiar with you.
You might have your automobile vehicle bike or car. You know that air is infiltrated inside vehicle tyres with pressure, so it possesses pressure laws.
Secondly, the shock absorber is filled with oil which absorbs jerk or shock. The oil will get pressurized and provide cushioning to your vehicle. There numerous day to day applications in your life that is totally or partially governed by fluid mechanics or dynamics.
Units and Dimensions
Since our subject is fluid mechanics, we will study a variety of fluid characteristics; it is a requirement to follow a system for indicating these attributes, both qualitatively and quantitatively.
The qualitative aspect describes to find the nature, or type, of the characteristics like length, time, stress, temperature, velocity and pressure on the next side the quantitative aspect indicates a value measure of the attributes.
A dimension can be defined as a description of measurable quantities or attributes of an object such as mass, length, temperature, pressure, time etc.
The understanding of unit can be considered as the standard for measuring the dimension or quality.
To understand the difference between units and dimensions, let’s take an example of the distance between Mumbai and Goa.
The term length is used to describe the qualitative concept of physical quantity.
The term unit indicates the magnitude of the distance between Mumbai and Goa in our example. This distance can be expressed in meter, kilometre or miles.
There are four fundamentals dimensions used in the physical dimensioning system. In the SI (standard international) system, the dimensions are mass, length, time and temperature. Let’s understand how it works?
International System (SI). In 1960, the 11th General Conference organised on Weights and Measures, the international organization responsible for managing precise, systematic standards of measurements, properly accepted the International System of Units as the international standard. This system, generally termed SI, has been broadly accepted worldwide and is broadly used.
Mass (M)
Kilogram
kg
Length (L)
Meter
m
Time (T)
Second
s
Temperature (K)
Kelvin
K
These are the fundamental units of the SI system. Other all the units of any physical properties can be derived based on these four units. Let’s take some example to understand it better way.
Work
You have heard about work. The unit of work is Joule. Now we expand its unit.
In other words, it is an energy transfer of any object when it moved from one place to another place. The force can be positive or negative.
Work = Force * Distance
The newton (N) is a unit of force, and the unit meter is a unit of distance. So the unit of work,
Unit of work = Newton* meter =N*m =Joule (J)
Density
The formula of density is given as below.
Density = mass per unit volume
Here, the unit of mass is kg, the unit of volume is m3.
The unit of density is kg/m3
The density of water is considered 1000 or 997 kg/m3. The density of air is 1.225 kg/m3
Its means that water is considered standard dense and it is heavier than much other liquid. The air is significantly lighter, and it is a highly compressible fluid.
Power
The definition of power is given as the ability of doing work in unit time. Or we can say work done per unit time.
Power = Work done per unit time.
The unit of work is Joule (J) and the unit of time is second (s).
The unit of power is derived as J/s (Joule/second). The unit Joule/second is in general known as watt (w).
Questions and Answers
What are types of fluid according to state?
According to the state, there are two types of fluid.
Liquid
Gas
Give the name of fluid mechanics branches.
Hydrostatics
Fluid kinematics
Fluid dynamics
What is real fluid?
It possesses most of the practical characteristics,
Viscous
Compressible
Friction
Surface tension
Define: Dimension and unit
A dimension can be defined as a description of measurable quantities or attributes of an object such as mass, length, temperature, pressure, time etc.
The understanding of unit can be considered as the standard for measuring the dimension or quality.
Give four fundamental dimensions of SI (Standard International).
Mass (M)
Length (L)
Time (T)
Temperature (K)
What is SI (Standard International) System?
International System (SI). In 1960 the 11th General Conference organized on Weights and Measures, the international organization responsible for managing precise, systematic standards of measurements, properly accepted the International System of Units as the international standard.
Enlist three applications of fluid mechanics.
Design supersonic aircrafts
The water distribution channel network
The pneumatics and hydraulic various fluid control devices
What are the pressure measuring instruments?
Bourdon tube pressure gauge
Vacuum gauge
Manometer
Give any three names of fluid mechanic principles.
Bernoulli’s theorem
Rayleigh’s method and Buckingham pi-theorem
Archimede’s principle
MCQ on Articles
Choose the fluid mechanics branch; the study includes force and energy acts on moving fluid?
This article is helpful to get the basic knowledge about fluid mechanics fundamental. The article includes an understanding of some basics terms like hydrostatics, fluid kinematics and fluid dynamics. The list of various fluid mechanics principle and applications are provided to get an idea about subject and future learning topics. In last, the dimension and unit definitions are given with detailed examples.
This article teaches you to visualize and remember applications of fluid mechanics in your day to day life. You have to collaborate with applications with fluid mechanic’s principles.
More topic related to fluid mechanics, please click here.
VBScript Tutorial #10: VBScript Conversion Functions and VBScript Format Functions
VBScript Tutorial #11: VBScript Other Functions
Through out this “VBScript Array Functions” article, we will explains the different types of frequently used vbscript array functions with examples. The important functions related to array are vbscript join, vbscript array, vbscript filter, vbscript split, etc.
VBScript Tutorial #8: VBScript Array Functions
VBScript Array Functions:
While working with arrays in vbscript, we can use in-build vbscript array functions to perform important array-related operations such as create, manipulate, conversion, etc. This article (VBScript Array Functions) contains all the important built-in VBScript array functions, which are mostly used in programs.
VBScript Array Functions – Summary:
vbscript Array – Defines an array based on given data values.
vbscript Filter – Defines a array which is a subset of another one-dimensional string array. The new array is created based on filter criteria.
vbscript IsArray– Test a array variable and return a Boolean value based on the result.
vbscript Join– Converts an array and returns a string value where all the array elements are separated by a specific delimiter.
vbscript Split– Converts a string into a zero-based, one-dimensional array.
vbscript UBound– Returns the upper index of an array that indicates the dimension.
VBScript Array Functions – Details:
All the important vbscript array functions are explained in this section with a proper example.
vbscript Array:
vbscript array function defines an array based on given data values. The array elements are passed the arguments in the vbscript array function.
Syntax: Array(arglist)
Parameter Description:
arglist – These are the mandatory parameters. The list(separated by comma) of arguments are basically the elements of the array.
Example:
In the below example, we will create an array of weekdays using vbscript array function and display the first day of the week (0 index) in a message box.
dayArray = Array("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
msgbox "The first day of week: " & dayArray(0)
Output (Message Box):
The first day of week: Mon
vbscript Filter:
vbscript filter function defines a zero-based array that contains a subset of a one-dimensional string array. The one-dimensional new array is created based on filter criteria.
string_array – It’s a mandatory parameter which indicates a one-dimensional array of string.
value – It’s a mandatory parameter which represents the filter criteria, i.e. the string expression to search in the array.
include – It’s an optional Boolean parameter. If we provide “true” value as include parameter, it includes the elements which contain the searched criteria. Else, it will exclude the elements which contain the criteria. The default value is true.
compare – This is also an optional parameter which specifies the comparison type as binary or textual. If not specified, by default parameter value will be treated as zero. The possible values are –
· 0 = vbBinaryCompare – Perform a binary checking
· 1 = vbTextCompare – Perform a textual checking
Example:
In the below example, we will create an array using vbscript filter function based on the elements of the weekday array, which contains “S” character.
dayArray = Array("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
filterArray = Filter(dayArray, "S")
for each e in filterArray
\tmsgbox e
next
Output (Message Box):
Sat
Sun
vbscript IsArray:
vbscript isarray function tests and returns a boolean value after checking a specified variable is an array or not. For a valid array, the return value is true else false will be returned.
Syntax: IsArray(variable)
Parameter Description:
variable – It’s a required parameter which needs to be verified.
Example:
In the below example, we will check a variable if it’s an array or not.
vbscript join function converts an array into a string expression where all the array elements are separated by a specific delimiter.
Syntax: Join(array [, delimiter])
Parameter Description:
array – It’s a required parameter which represents a one-dimensional array.
delimiter – It’s an optional parameter which is used to separate each array element after converting into string expression.
Example:
In the below example, we will convert the weekday array into a string expression using vbscript join function where all the elements will be separated by a comma.
Expression – It’s a required parameter which represents a string expression.
delimiter – It’s an optional parameter which is used to differentiate each array elements within the string expression. The default value is space.
count – It’s an optional parameter which represents the count of substring/array elements to be returned. The default value -1 specifies that entire string will be returned as single element of the array.
compare – This is also an optional parameter which specifies the comparison type as binary or textual. If not specified, by default parameter value will be treated as zero. The possible values are –
· 0 = vbBinaryCompare – Perform a binary checking
· 1 = vbTextCompare – Perform a textual checking
Example:
In the below example, we will convert a string expression, contains all the day name of a week which are separated by semi-column, using vbscript split function. After the conversion, we will display the first and last day of a week.
string_expression = "Mon;Tue;Wed;Thu;Fri;Sat;Sun"
dayArr = Split(string_expression, ";")
msgbox "First day-> " & dayArr(0) & " and Last day-> " & dayArr(6)
Output (Message Box):
First day-> Mon and Lat day-> Sun
vbscript LBound:
vbscript lbound function return the lower index, i.e. smallest subscript of an array for the specified dimension. The lbound value for an array is always 0.
Syntax: Lbound(array[,dimension])
Parameter Description:
array – It’s a required parameter which represents a one-dimensional array.
dimension – It’s an optional parameter which indicates the dimension of the array for which smallest subscript will be returned. The value will be 1 for the first dimension, 2 for the second dimension and so on. The default value is 1.
Example:
In the below example, we will find and display the lower subscript value using vbscript lbound function.
vbscript ubound function return the upper index, i.e. the largest subscript of an array for the specified dimension. The ubound value for an array represent the highest array index i.e. number of element minus one. This function helps to calculate the length of an array.
Syntax: Ubound(array[,dimension])
Parameter Description:
array – It’s a required parameter which represents a one-dimensional array.
dimension – It’s an optional parameter which indicates the dimension of the array for which smallest subscript will be returned. The value will be 1 for the first dimension, 2 for the second dimension and so on. The default value is 1.
Example:
In the below example, we will find and display the longest subscript value using vbscript ubound function.
Through this VBScript Array Functions article, we have learned about the frequently used VBScript Array Functions such as, vbscript array, vbscript filter, vbscript join, vbscript split function, etc. In the next vbscript tutorial, we will explain more functions on VBScript functions. Please click to read more on vbscript from here.
“The Metal-oxide-semiconductor field-effect-transistor (MOSFET), is a form of insulated gate field effect transistor that is made-up by the controllable oxidised silicon based semiconductors”.
Different types of MOS:
· P Channel MOSFET
· N Channel MOSFET
Different types of MOSFET devices:
· Enhancement Mode MOSFET
· Depletion Mode MOSFET
MOSFET Symbol
Working Principle of MOSFET:
MOSFET Basics
A FET is worked as a conductive semiconductor channel with 2 contacts – the ‘SOURCE ‘ and the DRAIN. The GATE juntion might be comprehended as a 2 -terminal circuitry as a MOS structure working as a rectifing reverse biasing mode. Usually, the GATE impedance is higher in classic working situations.
The FETs as per these standards are typically MOSFET, JFET, metal-semiconductor FET (MESFET), and heterostructure FET. Out of these FET, MOSFET is one of the significant one and commonly utilized for various applications.
In a silicon based MOSFET, the GATE terminal is normally insulated by a specific SiO2 layer. The charge carriers of the conductive channel develop an opposite charge, e- in that case, p-type substrate for an n-channel and ‘holes’ for n-type substrate for the p-channel. This will induced in the semiconductor at the silicon-insulator edge by the applied volt in GATE terminal. The e- will enter and depart the channel at n+ source and drain terminals cotacts for an n-channel metal-oxide-semiconductor field-effect-transistor. This will be p+ contacts during the p-type Metal-oxide-semiconductor field-effect-transistor.
MOSFET layer
Implementation of MOSFET:
Metal-oxide-semiconductor field-effect-transistors are working as discretized circuit and also as an active element. At the present time, these circuits are scaled down into the deep sub micro meter range. At the moment, the standard 0.13-µicro meter standard technology node CMOS is utilized for VLSI technology and, in future 0.1-µicro meter technology will be existing, with a certain upgradation of speed and integration range.
CMOS technology associates with the n-channel and p-channel Metal-oxide-semiconductor field-effect-transistor to consume very less power without constraining the performing speed. New SOI technology accomplish three dimentional integration with multiple layers, with a electrifying increase in integration stupidity. Novel and enriched structures and the combination of Bi-CMOS technology possibly will lead to further enhancements. One of the emerging areas of CMOS is across a variability of applications from audio device of kHz range to modern wireless application operated at GHz range.
Short channel Effect in MOSFET:
Usually FET sizes are assessed by the device aspect ratio. This is the ratio of the gate length in respect of active vertical measurement of FET. The perpendicular dimension for the oxide breadth is measured as parameter di, the source and drain junction depths is considered as parameter rj. The source and drain junction depletion depths are diefined by the parameter Ws and Wd respectively. The low aspect ratio is identical with short channel characteristics.
L<Lmin(µm) = 0.4[rj(µm)di(Å)(Wd + Ws)2(µm2)]1/3
When L is less than Lmin,.
The Metal-oxide-semiconductor field-effect-transistor threshold voltage is consederd as VT . This voltage will be impacted in a number of ways as a result of gate control. Generally, depletion charges near-source and drain are under the common control. The charge will develop a moderately higher portion of the GATE charge carrier. The depletion charge near drain inflates with increasing drain-source biasing voltage, causing in an additional VDS-dependent shift in threshold voltage .
The VT is a sort of barrier combined with carrier injected from the source to channel direction. This barrier is considerably adjusted by use of a drain biasing voltage. In n-channel Field effect transistors, the drain is dropping the threshold voltage and a concurrent rise in the threshold current with growing VDS.
High Field Effect of MOSFET:
In case of drain-source biasing of a Field effect transistor grow towards the drain saturation voltage which termed as ‘VSAT’ wherever a range of higher electric field is created near by drain. The velocity of e- in that region will saturates. In saturation region, the length considered as ∆L of the high-field increases in the course of the source with growing VDS, and the performs as if the in effect channel length is decreased by the parameter ∆L. This phenomenon is entitled as the Channel-length modulation or simply termed as CLM in the MOSFET basics. The subsequent simplified manifestation links of VDSto the length of the saturated region is as follows:
VDS = VP + Vα [exp(∆l/l)-1]]
wherever Vp, Vα, and l are parameters interrelated to the e- saturation velocity. Here, Vp is the potential at the point of saturation in the channel, that is commonly estimated by the parameter VSAT. Ths agreement is obtained amongst the potential summary which is acquired from the 2D simulation model of an N-channel MOSFET.
Hot Carrier Effects:
Hot-carrier effect is one of the most important concerns when shrinking FET size into the deep sub micrometre.It decreases the channel length while maintaining high power supply levels. These are increased to electric field strengths and reasons of speed up and heating the charged carriers. A comprehensive model for the substrate current is very difficult for circuit-level modelling.
Temperature Dependence and Self-Heating:
The MOSFET basics circuitry is functional in different environs, including different temperatures ranges. Heat created from power dissipation in a circuitry is also significant and the increase in temperature for circuit design is also needed to be considered. The design turns out to be more and more difficult as the device size is becoming very small and power dissipation are increasing with different mode of operation. The thermal characteristics are extensively studied by various models.
For more about MOSFET basics and others electronics related article click here
Remote control robots are versatile electronic devices that can be operated remotely to perform a wide range of tasks. Understanding the key characteristics of these robots is crucial for their effective deployment and optimization. This comprehensive guide delves into the technical details and quantifiable aspects of remote control robot characteristics, providing a valuable resource for science students and enthusiasts.
Control Accuracy
Control accuracy is a critical parameter that determines the precision with which a remote control robot can execute commands and achieve the desired position or movement. This characteristic can be quantified using the following metrics:
Position Accuracy: Measured as the deviation between the target position and the actual position of the robot, typically expressed in linear (e.g., millimeters) or angular (e.g., degrees) units.
Trajectory Accuracy: Evaluated by comparing the planned trajectory with the actual trajectory followed by the robot, often expressed as the root-mean-square error (RMSE) or maximum deviation.
Repeatability: Quantified by repeatedly executing the same task and measuring the variability in the robot’s performance, indicating its ability to consistently achieve the desired outcome.
The control accuracy of a remote control robot is influenced by factors such as the precision of the control system, sensor resolution, and the mechanical design of the robot’s components.
Response Time
Response time is a crucial characteristic that determines the robot’s ability to react to user commands in a timely manner. It can be measured as the time delay between the issuance of a command and the robot’s corresponding action. Factors that affect response time include:
Communication Latency: The time it takes for the command signal to travel from the controller to the robot, which can be influenced by the communication protocol, network bandwidth, and distance.
Processing Time: The time required for the robot’s onboard microcontroller or processor to interpret the command and generate the appropriate response.
Mechanical Constraints: The time it takes for the robot’s actuators (e.g., motors, servos) to physically execute the commanded movement or action.
Reducing response time is essential for applications that require real-time control, such as teleoperation or high-speed maneuvering.
Precision
Precision is a measure of the consistency and repeatability of a remote control robot’s movements or actions. It can be quantified by repeatedly executing the same task or movement and measuring the variability in the robot’s performance. Factors that contribute to precision include:
Sensor Accuracy: The resolution and accuracy of the robot’s sensors, such as encoders, gyroscopes, and accelerometers, which provide feedback for closed-loop control.
Mechanical Tolerances: The manufacturing quality and assembly precision of the robot’s mechanical components, which can affect the consistency of its movements.
Control Algorithm: The sophistication and tuning of the control algorithms used to translate user commands into precise robot actions.
A high degree of precision is essential for applications that require consistent and reliable performance, such as assembly, inspection, or surgical procedures.
Payload Capacity
The payload capacity of a remote control robot refers to the maximum weight or force that the robot can handle without compromising its performance or stability. This characteristic can be measured in terms of:
Maximum Payload Weight: The maximum weight the robot can lift or carry without exceeding its structural or actuator limitations.
Maximum Payload Force: The maximum force the robot can exert or withstand, such as during pushing, pulling, or grasping tasks.
The payload capacity is influenced by factors such as the robot’s size, weight, motor torque, and structural design. Knowing the payload capacity is crucial for selecting the appropriate robot for a given application, ensuring safe and reliable operation.
Maneuverability
Maneuverability is a measure of a remote control robot’s ability to navigate and move within a confined or complex environment. It can be quantified by evaluating the following parameters:
Turning Radius: The minimum radius the robot can turn while maintaining stability and control.
Maximum Speed: The highest velocity the robot can achieve in a straight line or during maneuvering.
Acceleration and Deceleration: The rate at which the robot can change its speed, both in the positive and negative directions.
Factors that influence maneuverability include the robot’s size, weight distribution, wheel or track configuration, and the control algorithms used for navigation and motion planning.
Communication Range
The communication range is a critical characteristic that determines the maximum distance between the controller and the remote control robot within which reliable communication can be maintained. This range can be measured in terms of:
Line-of-Sight Distance: The maximum distance the robot can be operated within a direct, unobstructed line of sight between the controller and the robot.
Obstacle-Penetrating Range: The maximum distance the robot can be operated while accounting for obstacles, walls, or other interference between the controller and the robot.
The communication range is influenced by factors such as the communication protocol (e.g., Wi-Fi, Bluetooth, RF), transmitter power, antenna design, and environmental conditions.
Battery Life
The battery life of a remote control robot is an essential characteristic that determines the duration of its operation before requiring recharging or replacement. It can be measured in terms of:
Operating Time: The length of time the robot can operate on a single charge, typically expressed in hours or minutes.
Charge/Discharge Cycles: The number of times the robot’s battery can be recharged before its capacity significantly degrades.
The battery life is influenced by factors such as the battery technology (e.g., lithium-ion, NiMH), battery capacity, power consumption of the robot’s components, and power management strategies.
Durability
Durability is a measure of a remote control robot’s ability to withstand wear, tear, and environmental factors such as temperature, humidity, and dust. It can be quantified by subjecting the robot to various stress tests and measuring its performance degradation over time. Aspects of durability include:
Mechanical Robustness: The robot’s resistance to physical impacts, vibrations, and other mechanical stresses.
Environmental Resistance: The robot’s ability to operate reliably in different environmental conditions, such as temperature extremes, moisture, or dust.
Maintenance Requirements: The frequency and complexity of maintenance tasks required to keep the robot in optimal working condition.
Durable remote control robots are essential for applications in harsh or demanding environments, where the robot’s reliability and longevity are critical.
Technical Specifications and DIY Aspects
In addition to the measurable and quantifiable characteristics, remote control robots can also be evaluated based on their technical specifications and DIY aspects, which include:
Control System: The hardware and software components that enable remote operation, including the controller, communication interface, sensors, actuators, and processing units.
Power Source: The type of power source used, such as batteries, fuel cells, or other portable energy storage devices, and its compatibility with the robot’s size, weight, and power requirements.
Sensors and Actuators: The types of sensors (e.g., cameras, infrared, ultrasonic, laser rangefinders) and actuators (e.g., motors, servos, hydraulic systems) used to perceive the environment and interact with it.
Communication Protocol: The communication protocol (e.g., Wi-Fi, Bluetooth, Zigbee, RF) used for reliable and efficient data transfer between the controller and the robot.
Software: The firmware running on the robot’s microcontroller or processor, as well as the application software on the controller, which can significantly impact the robot’s functionality, usability, and customizability.
DIY Aspects: The ease of assembly, modification, and customization of the remote control robot, often indicated by the availability of detailed instructions, schematics, and open-source software.
Understanding these technical specifications and DIY aspects is crucial for selecting the appropriate remote control robot for a specific application and for enabling enthusiasts to customize and enhance the robot’s capabilities.
By comprehending the various measurable and quantifiable characteristics, as well as the technical specifications and DIY aspects of remote control robots, science students and enthusiasts can make informed decisions, optimize the performance of these robots, and explore the vast potential of this technology.
References:
– Bioinspired Implementation and Assessment of a Remote-Controlled Robot
– Standard Test Methods For Response Robots
– Human Factors Considerations for Quantifiable Human States in Human-Robot Interaction
– Remote Control of Mobile Robot using the Virtual Reality Robot
– Robot tool use: A survey
The Olympus IX83 inverted microscope is a state-of-the-art instrument that offers a wide range of advanced features and capabilities for various imaging and research applications. This comprehensive guide will delve into the technical specifications, performance characteristics, and practical considerations of this versatile microscope system.
Observation Methods
The IX83 inverted microscope supports a diverse array of observation techniques, allowing researchers to choose the most appropriate method for their specific needs:
Fluorescence Imaging: The IX83 can be equipped with blue/green excitation and ultraviolet excitation capabilities, enabling the visualization of fluorescently labeled samples. This is particularly useful for studying cellular processes, protein localization, and molecular interactions.
Differential Interference Contrast (DIC): The IX83 offers DIC observation, which provides high-contrast, three-dimensional-like images of transparent specimens, such as living cells. This technique is valuable for studying the morphology and dynamics of cellular structures.
Phase Contrast: The IX83 can be configured with phase contrast optics, which enhance the visibility of transparent, unstained samples by converting phase shifts into amplitude differences. This method is widely used for observing live cells and other delicate biological specimens.
Brightfield Imaging: The IX83 supports traditional brightfield observation, allowing for the visualization of stained or unstained samples with high contrast and resolution.
Motorized Focus and Z Drift Compensation
The IX83 inverted microscope features motorized focus capabilities, providing precise and reproducible control over the focal plane. This is particularly important for techniques that require accurate focus maintenance, such as time-lapse imaging and z-stack acquisitions.
Furthermore, the IX83 is equipped with a Z drift compensator, which helps to maintain the focus over extended periods of time. This feature is crucial for long-term live-cell experiments, where sample drift can be a significant challenge.
Observation Tubes and Imaging Flexibility
The IX83 offers both widefield (FN 22) tilting binocular and trinocular observation tubes, providing researchers with the flexibility to choose the most suitable configuration for their imaging needs. The tilting binocular tube allows for comfortable and ergonomic observation, while the trinocular tube enables the integration of additional imaging devices, such as cameras or spectrometers.
Motorized and Manual Stage Options
The IX83 can be configured with either a motorized or manual stage, depending on the specific requirements of the research project. The motorized stage offers precise control over sample positioning, enabling automated and reproducible experiments. Conversely, the manual stage provides a more cost-effective solution for applications that do not require advanced stage automation.
Condenser Options
The IX83 inverted microscope offers a range of condenser options to accommodate different imaging techniques and sample types:
Motorized Universal Condenser: This condenser provides automated control over the numerical aperture (NA) and field diaphragm, optimizing the illumination for various observation methods.
Manual Universal Condenser: For more cost-sensitive applications, the IX83 can be equipped with a manual universal condenser, allowing for manual adjustment of the NA and field diaphragm.
Manual Ultra-Long Working Distance Condenser: This specialized condenser is designed for use with large or bulky samples, providing a long working distance to accommodate the sample height.
Dimensions and Weight
The IX83 inverted microscope has a compact footprint, with dimensions of 323 (W) x 475 (D) x 686 (H) mm and a weight of 47 kg (1 Deck Standard Configuration). This makes it suitable for a wide range of laboratory settings, from small benchtop spaces to larger research facilities.
Modular and Expandable Design
One of the key features of the IX83 is its modular and expandable design, which allows it to be customized to meet the specific needs of various research applications. The two-deck system configuration, for example, enables high-speed, fully automated device selection during live-cell research and advanced image acquisition. Conversely, the one-deck system offers a large field number and TruFocus compatibility for live-cell imaging.
Optical Performance Considerations
When considering a DIY inverted microscope project, it is essential to carefully evaluate the optical performance of the system. Some key factors to consider include:
Objective Lenses: The quality and characteristics of the objective lenses, such as numerical aperture, magnification, and aberration correction, will significantly impact the overall image quality and resolution.
Stage and Focus Mechanisms: The stability and precision of the stage and focus mechanisms are crucial for maintaining focus, reducing drift, and ensuring reproducible results.
Illumination System: The design and quality of the illumination system, including the light source, condenser, and filters, can affect the contrast, brightness, and uniformity of the observed samples.
Optical Alignment: Proper alignment of the various optical components, such as the objective, condenser, and observation tubes, is essential for achieving optimal performance and image quality.
By carefully considering these factors and following best practices for microscope design and construction, it is possible to build a high-quality DIY inverted microscope that can meet the demands of various research applications.