无法通过id,python selenium单击元素

时间:2017-09-06 11:18:38

标签: python selenium

您好我正在尝试查找并单击该元素,但它无法正常工作。 HTML代码如下:

<a href="#" class="button blue block" id="tollstation">Toll Plaza(s) Between Two Stations </a>

我正在尝试如下

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'tollstation')))

和其他一个

element = driver.find_element_by_id('tollstation') element.click()

但它不起作用。请帮助..

2 个答案:

答案 0 :(得分:0)

尝试使用以下代码,看看它是否有效 -

driver.get(url) 
embed = driver.find_element_by_tag_name('embed') 
driver.switch_to.frame(embed) 
element = driver.find_element_by_id('tollstation') 
driver.execute_script("arguments[0].click();", element)

对评论中的问题的答案 -

而不是 -

element2 = driver.find_element_by_class_name('button green')

使用以下代码 -

element2 = driver.find_element_by_xpath("//*[@id='showstation']/p[7]/a")

答案 1 :(得分:-1)

我对python一无所知所以我在java中编写代码,请将其转换为python

System.setProperty("webdriver.chrome.driver", "E:\\software and tools\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://tis.nhai.gov.in/tollplazasonmap?language=en");
driver.manage().window().maximize();
WebElement frame1=driver.findElement(By.xpath("//embed[@src='map1.htm']"));
driver.switchTo().frame(frame1);
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
WebElement tollstation= driver.findElement(By.id("tollstation"));
JavascriptExecutor js=(JavascriptExecutor)driver;
js.executeScript("arguments[0].click()",tollstation);