第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

React.js 如何定義自定義id,而不是在html中顯示

React.js 如何定義自定義id,而不是在html中顯示

暮色呼如 2022-07-20 20:50:20
如何更改 React.js 應(yīng)用程序以停止隨機(jī)分配 inputId,以便 Selenium 能夠始終如一地工作?我正在使用 Selenium 和 React.js 應(yīng)用程序。該應(yīng)用程序一直在開發(fā)中。我有一個(gè) Selenium 方法,可以使用一個(gè)可重用的方法隨機(jī)選擇反應(yīng)下拉列表,但是反應(yīng)下拉列表的 id 由于某種原因不斷變化,可能是每次構(gòu)建應(yīng)用程序時(shí),所以這會(huì)為 Selenium 測(cè)試創(chuàng)建返工。Selenium 方法:(在 JAVA 中)除了那些 react-select inputIds 改變之外,這個(gè)方法可以在反應(yīng)下拉列表中隨機(jī)選擇選項(xiàng),但它需要被清理。無(wú)論是否已經(jīng)通過(guò)導(dǎo)航選擇了一個(gè)選項(xiàng),它都會(huì)選擇一個(gè)選項(xiàng),然后返回下拉菜單。public String RandomSelect(WebDriver mydriver, String myid){try{Actions actions = new Actions(mydriver);actions.pause(300);WebElement dropdown = mydriver.findElement(By.id(myid));String scrollElementIntoMiddle = "var viewPortHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);" +"var elementTop = arguments[0].getBoundingClientRect().top;"+"window.scrollBy(0, elementTop-(viewPortHeight/2));";((JavascriptExecutor) mydriver).executeScript(scrollElementIntoMiddle, dropdown);//((JavascriptExecutor) mydriver).executeScript(// "arguments[0].scrollIntoView();", dropdown); actions.moveToElement(dropdown).click().build().perform();actions.pause(1000);actions.sendKeys(Keys.DELETE).build().perform();actions.pause(1000);actions.sendKeys(Keys.TAB).build().perform();actions.pause(1000);actions.moveToElement(dropdown).click().build().perform();actions.pause(1000);//  actions.pause(3000);//actions.sendKeys(Keys.DELETE);WebDriverWait wait = new WebDriverWait(mydriver, 10);wait.until(ExpectedConditions.elementToBeClickable(By.className("Select-option")));List<WebElement> options = mydriver.findElements(By.className("Select-option"));List<String> stroptions = new ArrayList<>();System.out.println(options.size());for (WebElement option: options) 使用硒方法:做這樣的事情 100 次比鍵入所有 Selenium 方法 100 次要容易。WebDriver driver;driver = new EdgeDriver();ReactDropdown mydropdown = new ReactDropdown();mydropdown.RandomSelect(driver, "react-select-1--value");如何刪除動(dòng)態(tài)分配的“react-select-1--value”并將 id 定義為更直觀的東西,如“mydropdown--value”,以便每次應(yīng)用程序構(gòu)建時(shí)都維護(hù) id?
查看完整描述

2 回答

?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以將 xpath 用作 -

//span[@class='Select-multi-value-wrapper' 和 @id[starts-with(@id,'react-select')


查看完整回答
反對(duì) 回復(fù) 2022-07-20
?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

我自己找到了一個(gè)解決方案,inputId 是制作唯一 id 并刪除 react-select 丑陋的關(guān)鍵。這是一個(gè)例子......


import React from 'react';

import Select from 'react-select';


const options = [

{ value: 'chocolate', label: 'Chocolate' },

{ value: 'strawberry', label: 'Strawberry' },

{ value: 'vanilla', label: 'Vanilla' }

];


export class Counter extends React.Component {

state = {

    selectedOption: null,

}

handleChange = (selectedOption) => {

    this.setState({ selectedOption });

    console.log(`Option selected:`, selectedOption);

}

render() {

    const { selectedOption } = this.state;


    return (

        <Select

            value={selectedOption}

            inputId="mydropdown"

            onChange={this.handleChange}

            options={options}

        />



    );

}

}

靜態(tài)定義 inputId 后,我的 Selenium 方法似乎效果更好。


查看完整回答
反對(duì) 回復(fù) 2022-07-20
  • 2 回答
  • 0 關(guān)注
  • 255 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)