代码试用:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.niftyindices.com/reports/historical-data")
driver.maximize_window()
driver.find_element_by_xpath("//*[@id="ddlHistorical"]").send_keys("NIFTY 100")
我遇到错误:
File "<ipython-input-32-592f058980cd>", line 5
driver.find_element_by_xpath("//*[@id="ddlHistorical"]").send_keys("NIFTY 100")
^
SyntaxError: invalid syntax
答案 0 :(得分:2)
此错误消息...
SyntaxError: invalid syntax
...表示 xpath 表达式不是有效的 xpath表达式。
在使用双引号即 "..."
作为 xpath 时,您需要提供属性值< / em>中的单引号中,即 '...'
。
因此您需要更改:
@id="ddlHistorical"
收件人:
@id='ddlHistorical'
有效的代码行:
driver.find_element_by_xpath("//*[@id="ddlHistorical"]").send_keys("NIFTY 100")
将是:
driver.find_element_by_xpath("//*[@id='ddlHistorical']").send_keys("NIFTY 100")
答案 1 :(得分:1)
在这种情况下,不能使用发送键从下拉框中选择值。我已经编写了相同的代码段。请尝试一下。
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
public class Testing {
public static WebDriver driver;
@Test
public void test() throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "./Driver/chromedriver");
driver = new ChromeDriver();
driver.get("http://www.niftyindices.com/reports/historical-data");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);
driver.findElement(By.xpath("//*[@id=\"HistoricalData\"]/div[1]/div/div/a")).click();
Thread.sleep(2000);
List<WebElement> elements = driver.findElements(By.xpath("//*[@id=\"mCSB_2_container\"]/li"));
for (WebElement element : elements) {
String mCSB = element.getText();
if (mCSB.equalsIgnoreCase("NIFTY 100"))
{
element.click();
}
System.out.println(mCSB);
}
}
}
如果可以帮助您,请投票并接受答案。