Libraries & Frameworks

I have working JDBC connection to data bricks server in Java code.
I’m trying to make similar connection in my JMeter project (tried with apache-jmeter-5.3 and apache-jmeter-5.4.3) using same connection details.
I put SparkJDBC42.jar in JMeter lib (downloaded from https://databricks.com/spark/jdbc-drivers-download).
To connect I’ve used com.simba.spark.jdbc.Driver class.
In Database Url using jdbc:spark://adb-…
I’ve tried:

using UID and PWD inside Url
using UID and PWD in Username and Password fields
using UID and PWD in Connection Properties.

No matter what I do, I keep getting error:
“Response message:java.sql.SQLException: Cannot create JDBC driver of class ‘com.simba.spark.jdbc.Driver’ for connect URL …”

I followed instructions from this post last response: https://stackoverflow.com/questions/66913893/how-can-i-connect-jmeter-with-databricks-spark-cluster
What can be the issue?

I am trying to resolve a compatibility issue between Chromedriver and Chrome browser, but none of the solutions I have tried have worked so far(mentioned below). I have latest chrome driver and chrome browser version installed but seems like it’s pointing to a different chromedriver which I’m not sure where to find. Location of my chromedriver is /opt/homebrew/bin/chromedriver. Please kindly help me understand what is wrong here? I have added all the details below. Thanks for your help!!Specifications:
ChromeDriver version 113.0.5672.63
Chrome browser version 113.0.5672.126
ERROR webdriver: Request failed with status 500 due to session not created: session not created: This version of ChromeDriver only supports Chrome version 108
Current browser version is 113.0.5672.126 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Solution tried

Uninstalling and reinstalling chrome driver by using brew install –cask chromedriver
Uninstalling and reinstalling chrome browser
Removing chromedriver from this location /opt/homebrew/bin/chromedriver and manually adding it to folder usr/local/bin
xattr -d com.apple.quarantine /opt/homebrew/Caskroom/chromedriver to remove restriction

I have the below script where I have taken the list of WebElement of the number of rows and subtracted with and then click on the Add button. But the problem over here is – script clicking on the Add button of the second row every time.
Below is my code:
List<WebElement> noofrows = driver.findElements(By.xpath(“//div[contains(@class,’form-tab-name’) and contains(normalize-space(),’Partners’)]/following::div[contains(@class,’ng-untouched’)]”));
int rowcount = noofrows.size();
System.out.println(“no of rows:”+rowcount);
WebElement lastrow = noofrows.get(noofrows.size()-1);
DriverUtil.waitTime(1000);
WebElement addbtn = lastrow.findElement(By.xpath(“//mat-icon[contains(normalize-space(),’add’)]”));

addbtn.click();

How to click on the Last row add button?
HTML:
<div _ngcontent-lkf-c122=”” class=”ng-untouched ng-pristine ng-star-inserted ng-valid”>
<div _ngcontent-lkf-c122=”” class=”form-tab-name form-tab-name-space”> Partners </div>
<div _ngcontent-lkf-c122=”” class=”ng-untouched ng-pristine ng-valid ng-star-inserted”>
<section _ngcontent-lkf-c122=”” class=”resp-grid-partners”>
<div _ngcontent-lkf-c122=”” class=”ng-star-inserted”>
<mat-form-field _ngcontent-lkf-c122=”” appearance=”outline” class=”mat-form-field form-field ng-tns-c92-234 mat-primary mat-form-field-type-mat-select mat-form-field-appearance-outline mat-form-field-can-float mat-form-field-has-label ng-untouched ng-pristine ng-valid mat-form-field-should-float”>
<div class=”mat-form-field-wrapper ng-tns-c92-234″>
<div class=”mat-form-field-flex ng-tns-c92-234″>
<div class=”mat-form-field-outline ng-tns-c92-234 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-234″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-234″ style=”width: 74.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-234″/>
</div>
<div class=”mat-form-field-outline mat-form-field-outline-thick ng-tns-c92-234 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-234″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-234″ style=”width: 74.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-234″/>
</div>
<!—->
<!—->
<!—->
<div class=”mat-form-field-infix ng-tns-c92-234″>
<mat-select _ngcontent-lkf-c122=”” role=”combobox” aria-autocomplete=”none” aria-haspopup=”true” class=”mat-select ng-tns-c95-237 mat-select-required ng-untouched ng-pristine ng-valid ng-star-inserted” aria-labelledby=”mat-form-field-label-381 mat-select-value-43″ id=”mat-select-42″ tabindex=”0″ aria-expanded=”false” aria-required=”true” aria-disabled=”false” aria-invalid=”false” required=””>
<div cdk-overlay-origin=”” class=”mat-select-trigger ng-tns-c95-237″>
<div class=”mat-select-value ng-tns-c95-237″ id=”mat-select-value-43″>
<!—->
<span class=”mat-select-value-text ng-tns-c95-237 ng-star-inserted”>
<span class=”mat-select-min-line ng-tns-c95-237 ng-star-inserted”>CHARTERER</span>
<!—->
<!—->
</span>
<!—->
</div>
<div class=”mat-select-arrow-wrapper ng-tns-c95-237″>
<div class=”mat-select-arrow ng-tns-c95-237″/>
</div>
</div>
<!—->
</mat-select>
<!—->
<!—->
<span class=”mat-form-field-label-wrapper ng-tns-c92-234″>
<label class=”mat-form-field-label ng-tns-c92-234 ng-star-inserted” id=”mat-form-field-label-381″ for=”mat-select-42″ aria-owns=”mat-select-42″>
<!—->
<mat-label _ngcontent-lkf-c122=”” class=”ng-tns-c92-234 ng-star-inserted”> Partner Role </mat-label>
<!—->
<span aria-hidden=”true” class=”mat-placeholder-required mat-form-field-required-marker ng-tns-c92-234 ng-star-inserted”> *</span>
<!—->
</label>
<!—->
</span>
</div>
<!—->
</div>
<!—->
<div class=”mat-form-field-subscript-wrapper ng-tns-c92-234″>
<!—->
<div class=”mat-form-field-hint-wrapper ng-tns-c92-234 ng-trigger ng-trigger-transitionMessages ng-star-inserted” style=”opacity: 1; transform: translateY(0%);”>
<!—->
<div class=”mat-form-field-hint-spacer ng-tns-c92-234″/>
</div>
<!—->
</div>
</div>
</mat-form-field>
</div>
<div _ngcontent-lkf-c122=”” class=”ng-star-inserted”>
<mat-form-field _ngcontent-lkf-c122=”” appearance=”outline” class=”mat-form-field form-field ng-tns-c92-235 mat-primary mat-form-field-type-mat-input mat-form-field-appearance-outline mat-form-field-can-float mat-form-field-should-float mat-form-field-has-label ng-untouched ng-pristine ng-valid”>
<div class=”mat-form-field-wrapper ng-tns-c92-235″>
<div class=”mat-form-field-flex ng-tns-c92-235″>
<div class=”mat-form-field-outline ng-tns-c92-235 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-235″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-235″ style=”width: 80.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-235″/>
</div>
<div class=”mat-form-field-outline mat-form-field-outline-thick ng-tns-c92-235 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-235″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-235″ style=”width: 80.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-235″/>
</div>
<!—->
<!—->
<!—->
<div class=”mat-form-field-infix ng-tns-c92-235″>
<!—->
<input _ngcontent-lkf-c122=”” matinput=”” class=”mat-input-element mat-form-field-autofill-control ng-untouched ng-pristine ng-valid cdk-text-field-autofill-monitored ng-star-inserted” type=”text” required=”” id=”partnerName” aria-invalid=”false” aria-required=”true” maxlength=”100″>
<!—->
<span class=”mat-form-field-label-wrapper ng-tns-c92-235″>
<label class=”mat-form-field-label ng-tns-c92-235 ng-star-inserted” id=”mat-form-field-label-383″ for=”partnerName” aria-owns=”partnerName”>
<!—->
<mat-label _ngcontent-lkf-c122=”” class=”ng-tns-c92-235 ng-star-inserted”> Partner name </mat-label>
<!—->
<span aria-hidden=”true” class=”mat-placeholder-required mat-form-field-required-marker ng-tns-c92-235 ng-star-inserted”> *</span>
<!—->
</label>
<!—->
</span>
</div>
<!—->
</div>
<!—->
<div class=”mat-form-field-subscript-wrapper ng-tns-c92-235″>
<!—->
<div class=”mat-form-field-hint-wrapper ng-tns-c92-235 ng-trigger ng-trigger-transitionMessages ng-star-inserted” style=”opacity: 1; transform: translateY(0%);”>
<!—->
<div class=”mat-form-field-hint-spacer ng-tns-c92-235″/>
</div>
<!—->
</div>
</div>
</mat-form-field>
</div>
<div _ngcontent-lkf-c122=”” class=”ng-star-inserted”>
<mat-form-field _ngcontent-lkf-c122=”” appearance=”outline” class=”mat-form-field form-field ng-tns-c92-236 mat-primary mat-form-field-type-mat-input mat-form-field-appearance-outline mat-form-field-can-float mat-form-field-should-float mat-form-field-has-label ng-untouched ng-pristine ng-valid”>
<div class=”mat-form-field-wrapper ng-tns-c92-236″>
<div class=”mat-form-field-flex ng-tns-c92-236″>
<div class=”mat-form-field-outline ng-tns-c92-236 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-236″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-236″ style=”width: 80.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-236″/>
</div>
<div class=”mat-form-field-outline mat-form-field-outline-thick ng-tns-c92-236 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-236″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-236″ style=”width: 80.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-236″/>
</div>
<!—->
<!—->
<!—->
<div class=”mat-form-field-infix ng-tns-c92-236″>
<!—->
<input _ngcontent-lkf-c122=”” matinput=”” class=”mat-input-element mat-form-field-autofill-control ng-untouched ng-pristine ng-valid cdk-text-field-autofill-monitored ng-star-inserted” type=”text” required=”” id=”partnerEmail” aria-invalid=”false” aria-required=”true” maxlength=”100″>
<!—->
<span class=”mat-form-field-label-wrapper ng-tns-c92-236″>
<label class=”mat-form-field-label ng-tns-c92-236 ng-star-inserted” id=”mat-form-field-label-385″ for=”partnerEmail” aria-owns=”partnerEmail”>
<!—->
<mat-label _ngcontent-lkf-c122=”” class=”ng-tns-c92-236 ng-star-inserted”> Partner Email </mat-label>
<!—->
<span aria-hidden=”true” class=”mat-placeholder-required mat-form-field-required-marker ng-tns-c92-236 ng-star-inserted”> *</span>
<!—->
</label>
<!—->
</span>
</div>
<!—->
</div>
<!—->
<div class=”mat-form-field-subscript-wrapper ng-tns-c92-236″>
<!—->
<div class=”mat-form-field-hint-wrapper ng-tns-c92-236 ng-trigger ng-trigger-transitionMessages ng-star-inserted” style=”opacity: 1; transform: translateY(0%);”>
<!—->
<div class=”mat-form-field-hint-spacer ng-tns-c92-236″/>
</div>
<!—->
</div>
</div>
</mat-form-field>
</div>
<!—->
<div _ngcontent-lkf-c122=””>
<button _ngcontent-lkf-c122=”” mat-icon-button=”” aria-hidden=”false” aria-label=”add” class=”mat-focus-indicator add-icon mat-icon-button mat-button-base”>
<span class=”mat-button-wrapper”>
<mat-icon _ngcontent-lkf-c122=”” role=”img” class=”mat-icon notranslate material-icons mat-icon-no-color” aria-hidden=”true” data-mat-icon-type=”font”>add</mat-icon>
</span>
<span matripple=”” class=”mat-ripple mat-button-ripple mat-button-ripple-round”/>
<span class=”mat-button-focus-overlay”/>
</button>
<button _ngcontent-lkf-c122=”” mat-icon-button=”” aria-hidden=”false” aria-label=”delete” class=”mat-focus-indicator add-icon mat-icon-button mat-button-base” style=”padding-left: 5px;”>
<span class=”mat-button-wrapper”>
<mat-icon _ngcontent-lkf-c122=”” role=”img” class=”mat-icon notranslate material-icons mat-icon-no-color” aria-hidden=”true” data-mat-icon-type=”font”>delete</mat-icon>
</span>
<span matripple=”” class=”mat-ripple mat-button-ripple mat-button-ripple-round”/>
<span class=”mat-button-focus-overlay”/>
</button>
</div>
</section>
</div>
<div _ngcontent-lkf-c122=”” class=”ng-untouched ng-pristine ng-valid ng-star-inserted”>
<section _ngcontent-lkf-c122=”” class=”resp-grid-partners”>
<div _ngcontent-lkf-c122=”” class=”ng-star-inserted”>
<mat-form-field _ngcontent-lkf-c122=”” appearance=”outline” class=”mat-form-field form-field ng-tns-c92-238 mat-primary mat-form-field-type-mat-select mat-form-field-appearance-outline mat-form-field-can-float mat-form-field-has-label ng-untouched ng-pristine ng-valid mat-form-field-should-float”>
<div class=”mat-form-field-wrapper ng-tns-c92-238″>
<div class=”mat-form-field-flex ng-tns-c92-238″>
<div class=”mat-form-field-outline ng-tns-c92-238 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-238″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-238″ style=”width: 74.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-238″/>
</div>
<div class=”mat-form-field-outline mat-form-field-outline-thick ng-tns-c92-238 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-238″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-238″ style=”width: 74.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-238″/>
</div>
<!—->
<!—->
<!—->
<div class=”mat-form-field-infix ng-tns-c92-238″>
<mat-select _ngcontent-lkf-c122=”” role=”combobox” aria-autocomplete=”none” aria-haspopup=”true” class=”mat-select ng-tns-c95-241 mat-select-required ng-untouched ng-pristine ng-valid ng-star-inserted” aria-labelledby=”mat-form-field-label-387 mat-select-value-45″ id=”mat-select-44″ tabindex=”0″ aria-expanded=”false” aria-required=”true” aria-disabled=”false” aria-invalid=”false” required=””>
<div cdk-overlay-origin=”” class=”mat-select-trigger ng-tns-c95-241″>
<div class=”mat-select-value ng-tns-c95-241″ id=”mat-select-value-45″>
<!—->
<span class=”mat-select-value-text ng-tns-c95-241 ng-star-inserted”>
<span class=”mat-select-min-line ng-tns-c95-241 ng-star-inserted”>CHARTERER</span>
<!—->
<!—->
</span>
<!—->
</div>
<div class=”mat-select-arrow-wrapper ng-tns-c95-241″>
<div class=”mat-select-arrow ng-tns-c95-241″/>
</div>
</div>
<!—->
</mat-select>
<!—->
<!—->
<span class=”mat-form-field-label-wrapper ng-tns-c92-238″>
<label class=”mat-form-field-label ng-tns-c92-238 ng-star-inserted” id=”mat-form-field-label-387″ for=”mat-select-44″ aria-owns=”mat-select-44″>
<!—->
<mat-label _ngcontent-lkf-c122=”” class=”ng-tns-c92-238 ng-star-inserted”> Partner Role </mat-label>
<!—->
<span aria-hidden=”true” class=”mat-placeholder-required mat-form-field-required-marker ng-tns-c92-238 ng-star-inserted”> *</span>
<!—->
</label>
<!—->
</span>
</div>
<!—->
</div>
<!—->
<div class=”mat-form-field-subscript-wrapper ng-tns-c92-238″>
<!—->
<div class=”mat-form-field-hint-wrapper ng-tns-c92-238 ng-trigger ng-trigger-transitionMessages ng-star-inserted” style=”opacity: 1; transform: translateY(0%);”>
<!—->
<div class=”mat-form-field-hint-spacer ng-tns-c92-238″/>
</div>
<!—->
</div>
</div>
</mat-form-field>
</div>
<div _ngcontent-lkf-c122=”” class=”ng-star-inserted”>
<mat-form-field _ngcontent-lkf-c122=”” appearance=”outline” class=”mat-form-field form-field ng-tns-c92-239 mat-primary mat-form-field-type-mat-input mat-form-field-appearance-outline mat-form-field-can-float mat-form-field-should-float mat-form-field-has-label ng-untouched ng-pristine ng-valid”>
<div class=”mat-form-field-wrapper ng-tns-c92-239″>
<div class=”mat-form-field-flex ng-tns-c92-239″>
<div class=”mat-form-field-outline ng-tns-c92-239 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-239″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-239″ style=”width: 80.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-239″/>
</div>
<div class=”mat-form-field-outline mat-form-field-outline-thick ng-tns-c92-239 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-239″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-239″ style=”width: 80.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-239″/>
</div>
<!—->
<!—->
<!—->
<div class=”mat-form-field-infix ng-tns-c92-239″>
<!—->
<input _ngcontent-lkf-c122=”” matinput=”” class=”mat-input-element mat-form-field-autofill-control ng-untouched ng-pristine ng-valid cdk-text-field-autofill-monitored ng-star-inserted” type=”text” required=”” id=”partnerName” aria-invalid=”false” aria-required=”true” maxlength=”100″>
<!—->
<span class=”mat-form-field-label-wrapper ng-tns-c92-239″>
<label class=”mat-form-field-label ng-tns-c92-239 ng-star-inserted” id=”mat-form-field-label-389″ for=”partnerName” aria-owns=”partnerName”>
<!—->
<mat-label _ngcontent-lkf-c122=”” class=”ng-tns-c92-239 ng-star-inserted”> Partner name </mat-label>
<!—->
<span aria-hidden=”true” class=”mat-placeholder-required mat-form-field-required-marker ng-tns-c92-239 ng-star-inserted”> *</span>
<!—->
</label>
<!—->
</span>
</div>
<!—->
</div>
<!—->
<div class=”mat-form-field-subscript-wrapper ng-tns-c92-239″>
<!—->
<div class=”mat-form-field-hint-wrapper ng-tns-c92-239 ng-trigger ng-trigger-transitionMessages ng-star-inserted” style=”opacity: 1; transform: translateY(0%);”>
<!—->
<div class=”mat-form-field-hint-spacer ng-tns-c92-239″/>
</div>
<!—->
</div>
</div>
</mat-form-field>
</div>
<div _ngcontent-lkf-c122=”” class=”ng-star-inserted”>
<mat-form-field _ngcontent-lkf-c122=”” appearance=”outline” class=”mat-form-field form-field ng-tns-c92-240 mat-primary mat-form-field-type-mat-input mat-form-field-appearance-outline mat-form-field-can-float mat-form-field-should-float mat-form-field-has-label ng-untouched ng-pristine ng-valid”>
<div class=”mat-form-field-wrapper ng-tns-c92-240″>
<div class=”mat-form-field-flex ng-tns-c92-240″>
<div class=”mat-form-field-outline ng-tns-c92-240 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-240″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-240″ style=”width: 80.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-240″/>
</div>
<div class=”mat-form-field-outline mat-form-field-outline-thick ng-tns-c92-240 ng-star-inserted”>
<div class=”mat-form-field-outline-start ng-tns-c92-240″ style=”width: 5.5px;”/>
<div class=”mat-form-field-outline-gap ng-tns-c92-240″ style=”width: 80.5px;”/>
<div class=”mat-form-field-outline-end ng-tns-c92-240″/>
</div>
<!—->
<!—->
<!—->
<div class=”mat-form-field-infix ng-tns-c92-240″>
<!—->
<input _ngcontent-lkf-c122=”” matinput=”” class=”mat-input-element mat-form-field-autofill-control ng-untouched ng-pristine ng-valid cdk-text-field-autofill-monitored ng-star-inserted” type=”text” required=”” id=”partnerEmail” aria-invalid=”false” aria-required=”true” maxlength=”100″>
<!—->
<span class=”mat-form-field-label-wrapper ng-tns-c92-240″>
<label class=”mat-form-field-label ng-tns-c92-240 ng-star-inserted” id=”mat-form-field-label-391″ for=”partnerEmail” aria-owns=”partnerEmail”>
<!—->
<mat-label _ngcontent-lkf-c122=”” class=”ng-tns-c92-240 ng-star-inserted”> Partner Email </mat-label>
<!—->
<span aria-hidden=”true” class=”mat-placeholder-required mat-form-field-required-marker ng-tns-c92-240 ng-star-inserted”> *</span>
<!—->
</label>
<!—->
</span>
</div>
<!—->
</div>
<!—->
<div class=”mat-form-field-subscript-wrapper ng-tns-c92-240″>
<!—->
<div class=”mat-form-field-hint-wrapper ng-tns-c92-240 ng-trigger ng-trigger-transitionMessages ng-star-inserted” style=”opacity: 1; transform: translateY(0%);”>
<!—->
<div class=”mat-form-field-hint-spacer ng-tns-c92-240″/>
</div>
<!—->
</div>
</div>
</mat-form-field>
</div>
<!—->
<div _ngcontent-lkf-c122=””>
<button _ngcontent-lkf-c122=”” mat-icon-button=”” aria-hidden=”false” aria-label=”add” class=”mat-focus-indicator add-icon mat-icon-button mat-button-base”>
<span class=”mat-button-wrapper”>
<mat-icon _ngcontent-lkf-c122=”” role=”img” class=”mat-icon notranslate material-icons mat-icon-no-color” aria-hidden=”true” data-mat-icon-type=”font”>add</mat-icon>
</span>
<span matripple=”” class=”mat-ripple mat-button-ripple mat-button-ripple-round”/>
<span class=”mat-button-focus-overlay”/>
</button>
<button _ngcontent-lkf-c122=”” mat-icon-button=”” aria-hidden=”false” aria-label=”delete” class=”mat-focus-indicator add-icon mat-icon-button mat-button-base” style=”padding-left: 5px;”>
<span class=”mat-button-wrapper”>
<mat-icon _ngcontent-lkf-c122=”” role=”img” class=”mat-icon notranslate material-icons mat-icon-no-color” aria-hidden=”true” data-mat-icon-type=”font”>delete</mat-icon>
</span>
<span matripple=”” class=”mat-ripple mat-button-ripple mat-button-ripple-round”/>
<span class=”mat-button-focus-overlay”/>
</button>
</div>
</section>
</div>
<!—->
</div>

I am using Serenity with Cucumber. Here the HTML report created for each scenario is with a random string.

My questions:

Can we rename those individual HTML report by scenario name?.
Is the HTML report generated right after the scenario is completed? Or after the whole execution?
If an answer to the 2nd question is yes can someone please explain the report generation flow?
Can we get the result during runtime? Or only at the end of the test run?

My requirement is to get test results parallel as soon as each test/scenario/feature is completed.

Thanks!

I’m trying to make a simple test to register in website – https://www.midomi.com/. I’m using c# and selenium but have stuck in selecting values from a dropdown list using Page object model. My project contains test class and page object folder with two classes inside her – home page and register page.

Register page: here I’m having problem to implement code to selecting values from the dropdown list

namespace MidomiRegisterPOM.PageObject
{
class RegisterPage
{
private IWebDriver driver;

//type your email
[FindsBy(How = How.Id, Using = “email”)]
[CacheLookup]
public IWebElement Email { get; set; }

//type your username
[FindsBy(How = How.Id, Using = “username”)]
[CacheLookup]
public IWebElement UserName { get; set; }

//type your password
[FindsBy(How = How.Id, Using = “password”)]
[CacheLookup]
public IWebElement Password { get; set; }

//confirm your password
[FindsBy(How = How.Id, Using = “confirm_password”)]
[CacheLookup]
public IWebElement ConfirmPassword { get; set; }

//here select from dropdown list your birth day, month and year

//mark privacy notice checkbox
[FindsBy(How = How.Id, Using = “tos_pp”)]
[CacheLookup]
public IWebElement PrivacyNotice { get; set; }

//click Continue button
[FindsBy(How = How.Id, Using = “submitLink”)]
[CacheLookup]
public IWebElement ContinueButton { get; set; }

public RegisterPage(IWebDriver driver)
{
this.driver = driver;
PageFactory.InitElements(driver, this);
}
public void RegisterToSite()
{
Email.SendKeys(“testing@gmail.com”);
UserName.SendKeys(“Tester”);
Password.SendKeys(“testing”);
ConfirmPassword.SendKeys(“testing”);
ContinueButton.Submit();
}

I’m trying this but got an error:

Is there any way to select it with [FindsBy] like I’m selecting email, username and password field? Thanks

Here is my code without using POM:

var birthMonth = driver.FindElement(By.Id(“birth_month”));
var selectMonth = new SelectElement(birthMonth);
selectMonth.SelectByValue(“5”);

I was a developer a long time ago and have been tasked with our teams automated testing with Selenium and C# for our web application;
Our application has many roles a user can be; such as an admin, carrier, Power user, and such. Depending on what role you are assigned, determines what you have access to in the application.

An admin has access to all pages, etc.
A Carrier can only see buttons x and y; and can only see menu options A, B, and C for example

A user is required to Authenticate.
I am having trouble visualizing the best way to create my tests/user. Almost all automation tests will need to be run for each user role. (we actually have 4 or 5 different role types, each has different access to parts of the application)

How would this be best handled? Anyone have some examples I can see (I am a visual learner)?

I am not trying to test having multiple users logged in at once; I am trying to test given a persons admin settings in the application – when they log in and authenticate, it will take their login information, and get their role, then the app takes care of what they can and can’t have access to. (I am using a page object model as well)

I have an automation flow where there is a need retrieve a code from an email and input it into as a verification code.
As its a demo I could use any temp email and grab it but I am wondering now what is the simplest way.
I’ve tried it via outlook but company seems to lock down too much and I can’t get the exchange server working.
What would work here?

I want to update the test results of Cucumber test scenarios to QC ALM using Rest API. I have individual test-set for all automation test scenario (There is a 1-1 mapping between automation test scenario name and test-set name). So to get the test-set id for particular automation scenario, I am calling the rest API through Java.

http://xxxx/qcbin/rest/domains//projects//test-set-folders?query={name[‘Test’]}

while executing this above with get method, I am getting the below error:

qccore.general-errorIllegal query expression: must be surrounded with curly brackets

The GET method works fine, if I have query like this:

?query={id[123]}

The ALM version is 11.52.536. Please help to solve this.

Recent Tech Innovations Highlighting AI Regulations Importance AI Regulations Around the Globe Key Ethical Considerations for AI Development Why Partner with Tx for AI Testing and Auditing Services? Summary The introduction of artificial intelligence (AI) is impacting everyone’s lives faster than we can comprehend. Its rapid adoption across businesses has started an international discussion regarding … Continue reading “AI Regulations Unveiled: Insights for Businesses in 2024”
The post AI Regulations Unveiled: Insights for Businesses in 2024 first appeared on TestingXperts.

Details:
Our customer wants complete test automation including test data generation for a chatbot. The test data will probably be provided to us via RestApi. Since we have not completed this area yet,
Questions:

What should we pay attention to here? Are there any differences to other test automation solutions?
Is the test via RestAPI sufficient? Or should the functional test also be in the foreground?
Are there sandboxes that could be used?
Are there guidelines that should be implemented?

I have a strange behavior : I created Test Class with 2 Test Methods as below.
When I call AddLimitedBuyOrderwithRandom in the first method it works fine without any exception, but if I call AddLimitedBuyOrderwithRandom from the second method I get a NoSuchElement exception.
This is the code for the test class:
public class TestLoginPage extends TestBase {
public HomePage homeobject;
public NewOrdersLoginPage OrderLoginObject;
public OrderMgmtPage OrdersMgmentObject;

@Test
public void SuccessLogin() throws InterruptedException
{
homeobject = new HomePage(driver);
homeobject.OpenOrdersPage();
OrderLoginObject = new NewOrdersLoginPage(driver);
OrderLoginObject.userLogin(“140”, “12345”);
OrdersMgmentObject = new OrderMgmtPage(driver);
OrdersMgmentObject.AddLimitedBuyOrderwithRandom(“10”);
}

@Test(enabled= true)
public void AddLimitOrderTest() throws InterruptedException
{
OrdersMgmentObject = new OrderMgmtPage(driver);
OrdersMgmentObject.AddLimitedBuyOrderwithRandom(“10”);
}
}

and this is the code for AddLimitedBuyOrderwithRandom:
public void AddLimitedBuyOrderwithRandom(String SharesCount) throws InterruptedException
{
clickButton(NewOrderLink);
clickButton(BuyTypeRadio);
selectDropdownByValue( companyList, “Company”);
typeText(ShareNoTxt, SharesCount);
selectDropdownByValue( OrderTypeList, “2”);
selectDropdownByValue( OrderValidityList, “0”);
double Pricerandom = getRandomNumberInRange(ReturnShareLimitDown(),ReturnShareLimitUp());
typeText(SharePriceTxt,Double.toString(Pricerandom));
clickButton(SubmitOrderBtn);
}

(Added from comments on answers)
My base class is:
public class TestBase
{
public static WebDriver driver ;
public static String downloadPath = System.getProperty(“user.dir”) + “\Downloads”;
public String BaseURL = “URL”;

@BeforeSuite
@Parameters({“browser”})
public void startDriver(@Optional (“chrome”) String browserType)
{
if (browserType.equalsIgnoreCase(“chrome”) )
{
System.setProperty(“webdriver.chrome.driver”, System.getProperty(“user.dir”)+”/drivers/chromedriver.exe”);
driver = new ChromeDriver();
}
}

driver.manage().window().maximize();
driver.navigate().to(BaseURL);
}