在硒java环境中选择Selenium java的文本,当它不是一个下降盒时

发布于 2025-02-11 23:11:47 字数 3962 浏览 1 评论 0 原文

因此,我想在Selenium Java中选择SPAN的文本,因为它不是一个普通的下拉框,我很容易做到,我正在使用XPath,我可以打开该下拉框(我们选择不同的地方衬衫的尺寸)类型,但无法从中选择文本,我正在共享网站链接并共享我的代码

我的代码,

package First_Test;

import java.time.Duration;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WindowType;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ISelect;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.Keys;

import io.github.bonigarcia.wdm.WebDriverManager;

    public class Practice_First {
        
        public static void main(String[] args) throws InterruptedException {
            
            //System.setProperty("webdriver.chrome.driver", "./Driver/chromedriver.exe");
    
            WebDriverManager.chromedriver().setup();
            
            
            WebDriver driver = new ChromeDriver();
            
            driver.get("https://www.ounass.ae/");
    
            driver.manage().window().maximize();
    
            Thread.sleep(3000);
    
                         String originalWindow= driver.getWindowHandle();
    
                     Thread.sleep(5000);
        
                       driver.findElement(By.id("wzrk-cancel")).click();      
                       
                 // driver.findElement(By.xpath("//button[@id='wzrk-cancel']")).click();
                  driver.findElement(By.xpath("//a[@href='/men']//div[@class='Gender-centralize']//span[@class='Gender-CTA'][normalize-space()='Shop Now']")).click();
    
                  Thread.sleep(2000);
                 //driver.findElement(By.cssSelector("a[href='shop-emporio-armani-camouflage-print-t-shirt-in-mercerised-cotton-for-men-215380566_20.html']")).click();
                  // driver.findElement(By.cssSelector("a[title=\"Camouflage Print T-shirt in Mercerised Cotton\"]")).click();
                  
                  driver.findElement(By.xpath("//span[normalize-space()='675 AED']")).click();
    
                  Thread.sleep(3000);
    
                 driver.findElement(By.xpath("//button[@title='Blue']")).click();
    
                 Thread.sleep(2000);
                 
               driver.findElement(By.xpath("//div[@class='Select-control']")).click();
    
               Thread.sleep(1000);
    
               //driver.findElement(By.xpath("//div[@class='Select Dropdown SizeSelection-options 
             
                Thread.sleep(1000); */      
            //driver.close();
                
        }   
    }

我的html代码:我的html代码:

<div class="Select Dropdown SizeSelection-options SizeSelection-fixedSize has-value Select--single" xpath="1">
    
    <input name="sizeCode" type="hidden" value="75">
    
    <div class="Select-control">
    
    <div class="Select-multi-value-wrapper" id="react-select-sizeCode--value">
    
    <div class="Select-value">
    <span class="Select-value-label" role="option" aria-selected="true" id="react-select-sizeCode--value-item">M</span>
    </div>
    
    <div aria-expanded="false" aria-owns="" aria-activedescendant="react-select-sizeCode--value" aria-disabled="false" class="Select-input" role="combobox" style="border:0;width:1px;display:inline-block" tabindex="0">
    </div>
    
    </div>

    <span class="Select-arrow-zone"><svg width="12" height="7" viewBox="0 0 20 10" class="svg">
    
    <path d="M0 0l10 10L20 0" stroke="#2d2d2d" class="svg-stroke">
    </path>
    
    
</svg>
    
    

</span>
    
    

</div>
    
   

 </div>

so I want to select the text of span in selenium java, as it is not a normal drop-down box, I would have done it easily, I am using XPath I am able to open that drop-down box (where we select different sizes of shirt) type but no able to select text from it, I am sharing website link and also sharing my code
https://www.ounass.ae/shop-emporio-armani-camouflage-print-t-shirt-in-mercerised-cotton-for-men-215380566_20.html

my Code,

package First_Test;

import java.time.Duration;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WindowType;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ISelect;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.Keys;

import io.github.bonigarcia.wdm.WebDriverManager;

    public class Practice_First {
        
        public static void main(String[] args) throws InterruptedException {
            
            //System.setProperty("webdriver.chrome.driver", "./Driver/chromedriver.exe");
    
            WebDriverManager.chromedriver().setup();
            
            
            WebDriver driver = new ChromeDriver();
            
            driver.get("https://www.ounass.ae/");
    
            driver.manage().window().maximize();
    
            Thread.sleep(3000);
    
                         String originalWindow= driver.getWindowHandle();
    
                     Thread.sleep(5000);
        
                       driver.findElement(By.id("wzrk-cancel")).click();      
                       
                 // driver.findElement(By.xpath("//button[@id='wzrk-cancel']")).click();
                  driver.findElement(By.xpath("//a[@href='/men']//div[@class='Gender-centralize']//span[@class='Gender-CTA'][normalize-space()='Shop Now']")).click();
    
                  Thread.sleep(2000);
                 //driver.findElement(By.cssSelector("a[href='shop-emporio-armani-camouflage-print-t-shirt-in-mercerised-cotton-for-men-215380566_20.html']")).click();
                  // driver.findElement(By.cssSelector("a[title=\"Camouflage Print T-shirt in Mercerised Cotton\"]")).click();
                  
                  driver.findElement(By.xpath("//span[normalize-space()='675 AED']")).click();
    
                  Thread.sleep(3000);
    
                 driver.findElement(By.xpath("//button[@title='Blue']")).click();
    
                 Thread.sleep(2000);
                 
               driver.findElement(By.xpath("//div[@class='Select-control']")).click();
    
               Thread.sleep(1000);
    
               //driver.findElement(By.xpath("//div[@class='Select Dropdown SizeSelection-options 
             
                Thread.sleep(1000); */      
            //driver.close();
                
        }   
    }

My html code :

<div class="Select Dropdown SizeSelection-options SizeSelection-fixedSize has-value Select--single" xpath="1">
    
    <input name="sizeCode" type="hidden" value="75">
    
    <div class="Select-control">
    
    <div class="Select-multi-value-wrapper" id="react-select-sizeCode--value">
    
    <div class="Select-value">
    <span class="Select-value-label" role="option" aria-selected="true" id="react-select-sizeCode--value-item">M</span>
    </div>
    
    <div aria-expanded="false" aria-owns="" aria-activedescendant="react-select-sizeCode--value" aria-disabled="false" class="Select-input" role="combobox" style="border:0;width:1px;display:inline-block" tabindex="0">
    </div>
    
    </div>

    <span class="Select-arrow-zone"><svg width="12" height="7" viewBox="0 0 20 10" class="svg">
    
    <path d="M0 0l10 10L20 0" stroke="#2d2d2d" class="svg-stroke">
    </path>
    
    
</svg>
    
    

</span>
    
    

</div>
    
   

 </div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷︶言冷语的世界 2025-02-18 23:11:47

尝试以下XPath以单击下拉项。

driver.FindElement(By.Xpath("//*[text()='XS']").Click();

Try below xPath for clicking on dropdown Item.

driver.FindElement(By.Xpath("//*[text()='XS']").Click();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文