2016-11-14 69 views
1

我想在我的網頁上找到一個討厭的按鈕。我可以找到的大部分其他元素,但這個讓我很頭疼。識別網頁上的按鈕元素硒

的HTML是:

<table class="d_FG" role="presentation"> 
<tbody> 
<tr> 
<tr id="z_t"> 
<td class="fct_w" colspan="2"> 
<div> 
<input name="newAttachments_fsid" value="0" type="hidden"> 
<table id="z_u" class="dcs" role="presentation"> 
<tbody> 
<tr style="border: none;"> 
<td colspan="3" style="padding-right:0"> 
<a id="z_v" class="vui-button d2l-button d2l_1_192_930" role="button" tabindex="0" aria-disabled="false">Add a File</a> 
<a id="z_w" class="vui-button d2l-button d2l_1_193_372" role="button" tabindex="0" aria-disabled="false">Record Audio</a> 
</td> 
<td></td> 
</tr> 
</tbody> 
</table> 
</div> 
</td> 
</tr> 
</tbody> 
</table> 

我試圖找到元素:

<a id="z_v" class="vui-button d2l-button d2l_1_192_930" role="button" tabindex="0" aria-disabled="false">Add a File</a> 

我已經試過各種方法,如:

public void add_attachment(){ 
    driver.switchTo().defaultContent(); 
    try { 
     Thread.sleep(2000); 
    } catch (InterruptedException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    driver.findElement(By.id("z_v"))).click(); 

} 

但只是不能管理它。總是得到消息不可見或其他元素將被點擊。

我嘗試使用向下滾動到元素的JavaScript,但沒有奏效。任何想法,以幫助我將不勝感激

回答

1

你可以嘗試像使用ActionsjavascriptExecutor如下一些其他方法,

WebElement btn = driver.findElement(By.id("z_v"))); 
Actions action = new Actions(driver); 
action.click(btn).build.perform(); 

JavascriptExecutor js = (JavascriptExecutor)driver; 
Js.executeScript("arguments[0].click()",btn); 
+0

我曾嘗試類似的東西已經,但是當我明天回去工作時,我會嘗試你的確切方法。也許當我嘗試JavaScript方法時,我錯誤地做了。謝謝,我會讓你知道它的工作原理 – tarquin

+0

是的!希望它會工作:) –

+0

輝煌,我嘗試了第二種方法,它的工作原理。第一種方法沒有按某個按鈕打開附加文件彈出窗口,我真的不明白第二個版本是如何工作的,或者爲什麼我的原始版本和你的第一個建議不起作用。如果你可以通過它,將不勝感激(如果你有時間)。 – tarquin