【问题标题】:How do I locate an element whose partialTagValues are dynamic如何定位其 partialTagValues 是动态的元素
【发布时间】:2018-01-30 16:04:12
【问题描述】:

我收到一条错误消息,提示“指定了无效或非法的选择器”。注意:- 在最后一个 findElement 语句中,我将 cssSelector 指定为 ("//td[id*='verificationMsg']/p[2]),因为 id 是我能找到的用于捕获数据的最接近的唯一定位器。并且它的那部分没有改变。例如:- 我当前的 id 值是 id="m_7959323670053369637verificationMsg" ,其中数字在重复的电子邮件中不断变化,但它的“verificationMsg”部分没有。

这是参考我之前的问题和我得到的建议

package Amazon;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class VerifyAmazonSignInPage {

	public static void main(String[] args) throws AWTException {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.chrome.driver", "C://Selenium jars/chromedriver.exe");
		
		WebDriver driver = new ChromeDriver();
		driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
		
	    driver.get("http://www.gmail.com");
	    driver.findElement(By.id("identifierId")).sendKeys("gaurav.thantry@gmail.com");
	    Robot rob = new Robot();
	    rob.keyPress(KeyEvent.VK_ENTER);
	    rob.keyRelease(KeyEvent.VK_ENTER);
	    driver.findElement(By.name("password")).sendKeys("******");
	    rob.keyPress(KeyEvent.VK_ENTER);
	    rob.keyRelease(KeyEvent.VK_ENTER);


	    driver.findElement(By.xpath("//span[text()='Amazon password assistance']")).click();
String v = driver.findElement(By.cssSelector("td[id*='verificationMsg']/p[2]")).getText();
	    
	    System.out.println(v);

	}

}

【问题讨论】:

  • 您是否尝试过在您的 xpath 中使用 contains 方法,如下所示? //td[contains(@id,"verificationMsg")/p[2]
  • 您编写了错误的方法来使用 cssSelector 定位器定位您的 web 元素。试试这个td[id*='verificationMsg']>p[2]

标签: java eclipse selenium selenium-webdriver


【解决方案1】:

小伙伴们抓紧吧。我得到了它。 //*[包含(@id,'verificationMsg')]/p[2]. 这行得通。

【讨论】:

    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多