我正在尝试在C#Selenium中创建一个合适的XPATH语法来提取网页上的订单号。以下是我试图获取屏幕截图中显示的订单号。所有这些都对我产生了不利影响。
$searchResponse = $youtube->search->listSearch('id,snippet', array(
'q' => 'cars',
'maxResults' => 10,
));
以下是Chrome的检查。我试图获取订单号,但它并不总是相同,所以我不能硬编码span id。
答案 0 :(得分:1)
driver.FindElement(By.XPath("//span[@id^='order-number-'"))
肯定不匹配,因为^=
不是XPath语言中的有效运算符。另外,您没有关闭方括号。
相反,如果您想要更短且更易读的版本,请使用CSS选择器:
driver.FindElement(By.CssSelector("span[id^=order-number]"))
此处^=
表示“以...开头”。
如果您想继续使用XPath,请使用starts-with()
function:
driver.FindElement(By.XPath("//span[starts-with(@id, 'order-number-')]"))
答案 1 :(得分:0)
你可以尝试一下:
var result = driver.FindElement(By.XPath("//span[contains(@id, 'order-number-')]")).Text;
它使用"包含"在跨度ID上。如果这有帮助,请告诉我。