Following the advice given on https://help.salesforce.com/articleView?id=000352057&language=en_US&mode=1&type=1 I have been trying to write a method to get the text of an Output field.
Using the LWC plugin I ge the following info:
isShadowed: "true"
java: "String queryString = "return document.querySelector('one-record-home-flexipage2').shadowRoot.querySelector('forcegenerated-adgrollup_component___forcegenerated__flexipage_recordpage___opportunity_record_page___opportunity___view').shadowRoot.querySelector('forcegenerated-flexipage_opportunity_record_page_opportunity__view_js').shadowRoot.querySelector('records-lwc-detail-panel').shadowRoot.querySelector('records-base-record-form').shadowRoot.querySelector('records-lwc-record-layout').shadowRoot.querySelector('forcegenerated-detailpanel_opportunity___01224000000hqcmaac___full___view___recordlayout2').shadowRoot.querySelectorAll('lightning-formatted-text')[0]";"
jspath: "document.querySelector('one-record-home-flexipage2').shadowRoot.querySelector('forcegenerated-adgrollup_component___forcegenerated__flexipage_recordpage___opportunity_record_page___opportunity___view').shadowRoot.querySelector('forcegenerated-flexipage_opportunity_record_page_opportunity__view_js').shadowRoot.querySelector('records-lwc-detail-panel').shadowRoot.querySelector('records-base-record-form').shadowRoot.querySelector('records-lwc-record-layout').shadowRoot.querySelector('forcegenerated-detailpanel_opportunity___01224000000hqcmaac___full___view___recordlayout2').shadowRoot.querySelectorAll('lightning-formatted-text')[0]"
tagname: "lightning-formatted-text"
I have been trying to get the text of the field using:
public void getOptyName2(){
String queryString = "return document.querySelector('one-record-home-flexipage2').shadowRoot.querySelector('forcegenerated-adgrollup_component___forcegenerated__flexipage_recordpage___opportunity_record_page___opportunity___view').shadowRoot.querySelector('forcegenerated-flexipage_opportunity_record_page_opportunity__view_js').shadowRoot.querySelector('records-lwc-detail-panel').shadowRoot.querySelector('records-base-record-form').shadowRoot.querySelector('records-lwc-record-layout').shadowRoot.querySelector('forcegenerated-detailpanel_opportunity___01224000000hqcmaac___full___view___recordlayout2').shadowRoot.querySelectorAll('lightning-formatted-text')[0]";
JavascriptExecutor js=(JavascriptExecutor)driver;
String oppname = js.executeScript("return document.querySelector('one-record-home-flexipage2').shadowRoot.querySelector('forcegenerated-adgrollup_component___forcegenerated__flexipage_recordpage___opportunity_record_page___opportunity___view').shadowRoot.querySelector('forcegenerated-flexipage_opportunity_record_page_opportunity__view_js').shadowRoot.querySelector('records-lwc-detail-panel').shadowRoot.querySelector('records-base-record-form').shadowRoot.querySelector('records-lwc-record-layout').shadowRoot.querySelector('forcegenerated-detailpanel_opportunity___01224000000hqcmaac___full___view___recordlayout2').shadowRoot.querySelectorAll('lightning-formatted-text')[0].innerHTML").toString();
System.out.println("Opportunity Name: "+oppname);
The code fails with erorr "org.openqa.selenium.JavascriptException: javascript error: Cannot read property 'shadowRoot' of null"
I'm new to test automation and I'm currently using Selenium Webdriver.
I would be really grateful for any help, if anyone knows how to the LWC plugin to interract with LWC elements
2 个回答