Unable to select Un Ordered List of 2 similar drop down values through selenium webdriver - selenium

I’m trying to automate and select the drop down values.
2 fields are having same drop down values (i.e.). Yes and No and both field has similar HTML code . So unable to find unique Xpath in order to click on second field and it is throwing an org.openqa.selenium.ElementNotInteractableException exception. Since the tag name is not SELECT, so I couldn’t use SELECT Class.
HTML Code:
1st Field
<table id="ssl" class="x-field dropdown x-form-item x-box-item x-field-default x-vbox-form-item x-form-dirty" style="margin: 0px; width: 660px; table-layout: fixed; left: 9px; top: 36px;" cellpadding="0">
<tbody>
<tr id="ssl-inputRow">
<td id="ssl-labelCell" class="x-field-label-cell" style="" halign="left" width="385" valign="top">
<label id="ssl-labelEl" class="x-form-item-label x-form-item-label-left" for="ssl-inputEl" style="width:380px;margin-right:5px;">Use SSL to connect to NetScaler </label>
</td>
<td id="ssl-bodyEl" class="x-form-item-body x-form-trigger-wrap-focus" colspan="2" role="presentation" style="width: 100%;">
<table id="ssl-triggerWrap" class="x-form-trigger-wrap" style="width: 100%; table-layout: fixed;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td id="ssl-inputCell" class="x-form-trigger-input-cell" style="width: 100%;">
<div id="ext-gen1668" class="x-hide-display x-form-data-hidden" role="presentation"></div>
<input id="ssl-inputEl" class="x-form-field x-form-text x-form-focus x-field-form-focus x-field-default-form-focus" autocomplete="off" name="ssl" readonly="readonly" style="width: 100%; -moz-user-select: text;" aria-invalid="false" data-errorqtip="" type="text">
</td>
<td id="ext-gen1667" class="x-trigger-cell" style="width:22px" valign="top">
<div id="ext-gen1666" class="x-trigger-index-0 x-form-trigger x-form-arrow-trigger x-form-trigger-last x-unselectable" role="button" style="-moz-user-select: none;"></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
2nd Field:
<table id="isDiscovery" class="x-field dropdown x-form-item x-box-item x-field-default x-vbox-form-item x-form-dirty" style="margin: 0px; width: 660px; table-layout: fixed; left: 9px; top: 67px;" cellpadding="0">
<tbody>
<tr id="isDiscovery-inputRow">
<td id="isDiscovery-labelCell" class="x-field-label-cell" style="" halign="left" width="385" valign="top">
<label id="isDiscovery-labelEl" class="x-form-item-label x-form-item-label-left" for="isDiscovery-inputEl" style="width:380px;margin-right:5px;">Discover StoreFront hosts using this NetScaler </label>
</td>
<td id="isDiscovery-bodyEl" class="x-form-item-body" colspan="2" role="presentation" style="width: 100%;">
<table id="isDiscovery-triggerWrap" class="x-form-trigger-wrap" style="width: 100%; table-layout: fixed;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td id="isDiscovery-inputCell" class="x-form-trigger-input-cell" style="width: 100%;">
<div id="ext-gen1671" class="x-hide-display x-form-data-hidden" role="presentation"></div>
<input id="isDiscovery-inputEl" class="x-form-field x-form-text" autocomplete="off" name="isDiscovery" readonly="readonly" style="width: 100%; -moz-user-select: text;" aria-invalid="false" data-errorqtip="" type="text">
</td>
<td id="ext-gen1670" class="x-trigger-cell" style="width:22px" valign="top">
<div id="ext-gen1669" class="x-trigger-index-0 x-form-trigger x-form-arrow-trigger x-form-trigger-last x-unselectable" role="button" style="-moz-user-select: none;"></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
Tried Xpath (but it is failing to select 2nd field)
1st field xpath:
.//*[#id='ssl-inputEl']//following::div[contains(#id,'boundlist-')]/div/ul/li[2][contains(text(), 'No')]
.//*[#id='ssl-inputEl’]//following::div[contains(#id,'boundlist-')]/div/ul/li[1][contains(text(), ‘Yes’)]
.//*[contains(#id,'boundlist-')]/div/ul/li[1][contains(text(), 'Yes')]
.//*[contains(#id,'boundlist-')]/div/ul/li[2][contains(text(), 'No')]
2nd field xpath:
.//*[#id='isDiscovery-inputEl']//following::div[contains(#id,'boundlist-')]/div/ul/li[2][contains(text(), 'No')]
.//*[#id='isDiscovery-inputEl']//following::div[contains(#id,'boundlist-')]/div/ul/li[1][contains(text(), ‘Yes’)]
.//*[contains(#id,'boundlist-')]/div/ul/li[1][contains(text(), 'Yes')]
.//*[contains(#id,'boundlist-')]/div/ul/li[2][contains(text(), 'No')]

Related

Selecting a specific column value from a specific row - Java Selenium

I have a table with 3 rows (tr's) and 3 columns (td cells).
About this table:
1.The columns are not fixed, and 1st column can be moved to 2nd column.
2.The manager column just contains a round box like img which will be checked (only one at a time).
Name Email Manager
Name1 email_id_1 roundbox (selected currently)
Name2 email_id_2 roundbox
Name3 email_id_3 roundbox
I was successful in getting the number of rows, number of columns, index of each column from the table.
List<WebElement> rows = tablelocator.findElements(By.path of rows locator)
print(rows.size)
But the next step is failing where in the element "Xpath of the selected manager" is not visible (not time / wait related issue).
WebElement rowWhichIWant = driver.findElement(By.xpath("path of row 1 whose manager is selected"));
The above fails with no such element (even though the row gets highlighted in the browser when searching with this locator, so its not a locator problem as well)
I want to retrieve only the email id of the currently selected manager, i.e email_id_1.
HTML:
<div tabindex="0" id="somename">
<table class="x1ns" summary="some summary">
<colgroup span="3">
<col style="width:161px;">
<col style="width: 210px;">
<col style="width: 310px;">
</colgroup>
<tbody>
<tr>
<th style="padding:0px;padding-left:11px;width:150px;"></th>
<th style="padding: 0px 0px 0px 11px; width: 199px;"></th>
<th style="padding: 0px 0px 0px 11px; width: 299px;"></th>
</tr>
<tr>
<th id="someid">
<div style="some style">
<table id="some id">
<tbody>
<tr>
<td _afrsortasc="1"><a tabindex="-1" class="x1nw" title="Sort Ascending"></a></td>
<td _afrsortdesc="1"><a tabindex="-1" class="x1nx" title="Sort Descending"></a></td>
</tr>
</tbody>
</table>
</div>
<div class="x1zr"><span class="af_column_label-text">Name</span></div>
</th>
<th id="someid">
<div style="some style">
<table id="some id">
<tbody>
<tr>
<td _afrsortasc="1"><a tabindex="-1" class="x1nw" title="Sort Ascending"></a></td>
<td _afrsortdesc="1"><a tabindex="-1" class="x1nx" title="Sort Descending"></a></td>
</tr>
</tbody>
</table>
</div>
<div class="x1zr"><span class="af_column_label-text">E-Mail</span></div>
</th>
<th id="someid">
<div style="some style">
<table id="some id">
<tbody>
<tr>
<td _afrsortasc="1"><a tabindex="-1" class="x1nw" title="Sort Ascending"></a></td>
<td _afrsortdesc="1"><a tabindex="-1" class="x1nx" title="Sort Descending"></a></td>
</tr>
</tbody>
</table>
</div>
<div class="x1zr"><span class="af_column_label-text">Manager</span></div>
</th>
</tr>
</tbody>
</table>
</div>
<div id="some id">
<table summary="some summary" class="x1nj x1o7">
<colgroup span="3">
<col style="width:161px;">
<col style="width: 210px;">
<col style="width: 310px;">
</colgroup>
<tbody>
<tr _afrrk="0" class="xep">
<td style="width: 199px;" class="xeq" nowrap=""><a id="someid1" class="someclass1" href="mailto:email_id_1#email.com">email_id_1#email.com</a></td>
<td style="width: 299px;" class="xeq" nowrap=""><a id="someid2" class="someclass2" onclick="this.focus();return false;" href="#">Name1</a></td>
<td style="width:90px;" class="xeq" nowrap="" align="center"><img id="someimgid1" title="Primary" alt="Primary" class="xje"></td>
</tr>
<tr _afrrk="1" class="xep">
<td class="xeq" nowrap=""><a id="someid3" class="someclass3" href="mailto:email_id_2#email.com">email_id_2#email.com</a></td>
<td class="xeq" nowrap=""><a id="someid4" class="someclass4" onclick="this.focus();return false;" href="#">Name2</a></td>
<td class="xeq" nowrap="" align="center"><a id="someaid2" title="Primary" class="xko p_AFIconOnly" onclick="this.focus();return false;" href="#"><img id="someimgid2" title="Primary" alt="Primary" class="_afrImageNotLoadedInTime xi8"></a></td>
</tr>
<tr _afrrk="2" class="xep">
<td class="xeq" nowrap=""><a id="someid3" class="someclass3" href="mailto:email_id_3#email.com">email_id_3#email.com</a></td>
<td class="xeq" nowrap=""><a id="someid4" class="someclass4" onclick="this.focus();return false;" href="#">Name3</a></td>
<td class="xeq" nowrap="" align="center"><a id="someaid3" title="Primary" class="xko p_AFIconOnly" onclick="this.focus();return false;" href="#"><img id="someimgid3" title="Primary" alt="Primary" class="xi8"></a></td>
</tr>
</tbody>
</table>
</div>
<div id="someid123" style="height: 0px; width: 1040px;"></div>
<div id="someid234" class="x1ob" style="position:absolute;display:none"></div>
<div id="someid345" class="x1nk" style="position:absolute;display:none;overflow:hidden"></div>
<div id="someid456" style="display:none"></div>
<div tabindex="-1" id="someid567" style="position: absolute; overflow: auto; z-index: 0; width: 1040px; top: 33px; height: 261px; right: 0px;">
<div style="width: 1040px; height: 223px; visibility: hidden;"></div>
</div>
no such element indicates that indeed the element was not found, You can try this code to get all the text from the table :
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(#class,'x1nj')]")));
WebElement tbl = driver.findElement(By.xpath("//*[contains(#class,'x1nj')]"));
List<WebElement> rows = tbl.findElements(By.tagName("tr"));
for(int i=0; i<rows.size(); i++) {
//check column each in row, identification with 'td' tag
List<WebElement> cols = rows.get(i).findElements(By.tagName("td"));
//column iteration
for(int j=0; j<cols.size(); j++) {
System.out.println("row " +(i+1) +" col " +(j+1) +" : " +cols.get(j).getText());
}
}
Console output :
So this is to get the cell you want :
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(#class,'x1nj')]")));
WebElement tbl = driver.findElement(By.xpath("//*[contains(#class,'x1nj')]"));
List<WebElement> rows = tbl.findElements(By.tagName("tr"));
List<WebElement> cols = rows.get(0).findElements(By.tagName("td"));
WebElement cell1 = cols.get(0);
WebElement cell2 = cols.get(1);
System.out.println("get text : " +cell1.getText());
System.out.println("get text : " +cell2.getText());
Reference

Unable to switch control to a prompt with multiple fields in selenium

I am trying to select an element in the prompt, but I am unable to switch control to the prompt.
I've tried the below code:
Alert a = driver.switchTo().alert();
WebElement e = wait.until(Expected Conditions.visibilityofElementLocated(By.xpath("locator"));
Adding HTML code
<table role="dialog" aria-labelledby="ariaLabelledBy_promptsDlg" oncontextmenu="_CWprompts.eventCancelBubble(event);return false" border="0" cellspacing="0" cellpadding="0" id="promptsDlg" style="display: block; padding: 0px; visibility: visible; position: absolute; top: 119px; left: 368px; width: 800px; height: 400px; z-index: 1005;">
<tbody>
<tr>
<td style="width:800px;height:400px;" class="dialogbox" id="td_dialog_promptsDlg" onresize="_CWprompts.DialogBoxWidget_resizeIframeCB('promptsDlg',this)" valign="top">
<table class="dlgBox2" width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td height="0" valign="top">
<table style="height:26" class="dlgTitle" width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr valign="top" style="height:26px">
<td onselectstart="return false" ondragstart="return false" onmousedown="_CWprompts.DialogBoxWidget_down(event,'promptsDlg',this,false);return false;" style="cursor:move;padding-left:10px;" width="100%" valign="middle" align="left">
<nobr>
<span id="ariaLabelledBy_promptsDlg" class="titlezone">Prompts</span>
</nobr>
</td>
<td class="dlgCloseArea" align="left" valign="middle">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr style="height:26px">
<td valign="middle" align="left" style="padding-right:4px;">
<div id="helpIcon_promptsDlg" "="" title="Help Contents" class="imo" style="width:16px;height:16px;background-image:url('images/main/galleries/icon16x16gallery1b.png');background-position:0px -480px;"></div>
</td>
<td style="padding-right:10px">
<div id="dialogClose_promptsDlg" class="dlgCloseBtn" title="Close window"></div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
I am getting no such alert exception. Can someone please help me out with this?
Thanks in advance.

How to build a responsive email template using a table structure

I've been reading and researching how to build a responsive email - the thing is I am building it using a table. I know tables are not responsive by nature; however, I've been reading up on responsive design, media queries, and such and I still cannot find a solution. Below is what I have so far. Any help would be greatly appreciated as I would like to learn how to make an email responsive.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Trident Email</title>
<style type="text/css">
#media (max-width: 480px){
table,tbody,tr,td,img {
display:block;
}
div#background {
width: 400px;
}
table#container{
width:300px;
}
}
</style>
</head>
<body>
<div id="background" style="background-color:#eeee00;padding:10px 0;margin:0 320px;">
<table style="margin:0px auto;border-spacing:0px;border-collapse:collapse;text-align:center;" cellpadding="0" cellspacing="0" width="600" align="center">
<tbody>
<tr>
<td>
<table id="container" style="border-spacing:0px;border-collapse:collapse;" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td>
<img src="http://enews.trident.edu/hs-fs/hub/336281/file-2384384346-jpg/Headers_Footers/Trident_is_Coming_to_Town.jpg?t=1446144504152" width="100%" style="vertical-align:bottom;">
</td>
</tr>
<tr>
<td>
<table style="border-spacing;0px;border-collapse:collapse;background-color:rgb(0,39,77);" cellpadding="5" cellspacing="0" width="100%">
<tbody>
<tr>
<td></td>
<tr>
<td style="text-align:left;" width="65%">
<table cellpadding="5" cellspacing="10" width="100%">
<tbody>
<tr>
<td>
<div style="">
<p><span style="color: #9c800d; font-family: helvetica;text-transform:uppercase;"><strong>Date:</strong></span></p>
</div>
</td>
<td width="100%" style="text-align:left;">
<div style="">
<p>
<span style="color: #9c800d; font-family: helvetica;"><strong>November 2, 2015</strong></span>
</p>
</div>
</td>
</tr>
<tr>
<td>
<div style="">
<p>
<span style="color: #9c800d; font-family: helvetica;text-transform:uppercase;"><strong>time:</strong></span>
</p>
</div>
</td>
<td width="100%" style="text-align:left;">
<div style="">
<p>
<span style="color: #9c800d; font-family: helvetica;"><strong>10:00AM - 2:00PM</strong></span>
</p>
</div>
</td>
</tr>
<tr>
<td>
<div style="">
<p>
<span style="color: #9c800d; font-family: helvetica;text-transform:uppercase;"><strong>location:</strong></span>
</p>
</div>
</td>
<td width="100%" style="text-align:left;">
<div style="">
<p>
<span style="color: #9c800d; font-family: helvetica;line-height:1.5;"><strong>Fort Rucker Army Installation<br/>Bldg.4502, Room 303</strong></span>
</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
<td width="35%" style="text-align:right;">
<div>
<img src="http://enews.trident.edu/hs-fs/hub/336281/file-2668017528-jpg/images/Outreach/James_Shiver_175px.jpg?t=1446144504152" width="100%">
</div>
<p style="text-align:left;" color="#ffffff" align="left"><span style="font-family: helvetica; color: #ffffff;" color="#ffffff"><strong>James Shiver</strong></span><br/><span style="font-family: helvetica; font-size: 13px; color: #ffffff;">334-470-9146</span><br><span style="color: #ffffff;">james.shiver#trident.edu</span></p>
</td>
</tr>
</tbody>
</table>
<table style="border-spacing;0px;border-collapse:collapse;background-color:rgb(0,39,77);" cellpadding="5" cellspacing="0" width="100%">
<tbody>
<tr>
<td width="20"></td>
<td width="80">
<div style="border-top:2px solid #9c800d;width:98%">
<p style="color:#ffffff;text-align:center;font-family:helvetica;font-weight:bold;">
Can't stop by? Visit us Online:
</p>
</div>
</td>
<td width="20"></td>
</tr>
</tbody>
</table>
<table style="border-spacing;0px;border-collapse:collapse;background-color:rgb(0,39,77);text-align:center;" cellpadding="0" cellspacing="0" width="100%" align="center">
<tr>
<td width="20"></td>
<td>
<div>
<p style="text-align:center;color:#ffffff;font-family:helvetica;font-size:14px;">
trident.edu/james
</p>
</div>
</td>
<td width="">
<div>
<p style="text-align:center;color:#ffffff;font-family:helvetica;font-size:14px;">
News and Events
</p>
</div>
</td>
<td>
<div>
<p style="text-align:center;color:#ffffff;font-family:helvetica;font-size:14px;">
University Blog
</p>
</div>
</td>
<td width="20"></td>
</tr>
</table>
<table style="border-spacing;0px;border-collapse:collapse;background-color:rgb(0,39,77);" cellpadding="5" cellspacing="0" width="100%">
<tbody>
<tr>
<td width="20"></td>
<td width="60">
<div>
<p style="color:#ffffff;text-align:center;font-family:helvetica;font-weight:bold;">
Trident University<br/>1212 Plaza Dr.<br/>Cypress, CA 90630
</p>
</div>
</td>
<td width="20"></td>
</tr>
<tr>
<td width="20"></td>
<td width="60">
<div>
<img src="http://enews.trident.edu/hs-fs/hub/336281/file-2102317013-png/outreach_emblem-188px.png?t=1446144504152&width=80&name=outreach_emblem-188px.png" width="80" align="center">
</div>
</td>
<td width="20"></td>
</tr>
<tr>
<td width="20"></td>
<td width="60"><p style="color:#ffffff;font-size:13px">Unsubscribe</p></td>
<td width="20"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
You need to include an !important in the media query in the <style> so that it can override the inline styles in the email body. This allows table cells to became full width and stack on small viewports.
Here is a basic example of responsive 2-column email layout using media queries:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- META Stuff -->
<!-- CSS Reset -->
<style>
/* Media Queries */
#media screen and (max-width: 600px) {
.email-container {
width: 100% !important;
margin: auto !important;
}
/* What it does: Forces table cells into full-width rows. */
.stack-column {
display: block !important;
width: 100% !important;
max-width: 100% !important;
direction: ltr !important;
}
}
</style>
</head>
<body width="100%" bgcolor="#000000" style="margin: 0; mso-line-height-rule: exactly;">
<center style="width: 100%; background: #000000;">
<!-- Email Body : BEGIN -->
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center" width="600" style="margin: auto;" class="email-container">
<!-- 2 Even Columns : BEGIN -->
<tr>
<td bgcolor="#ffffff" align="center" valign="top" style="padding: 10px;">
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<!-- Column : BEGIN -->
<td class="stack-column">
<table role="presentation" cellspacing="0" cellpadding="0" border="0">
<tr>
<td style="font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; padding: 0 10px 10px; text-align: left;">
Column 1 Maecenas sed ante pellentesque, posuere leo id, eleifend dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
</td>
</tr>
</table>
</td>
<!-- Column : END -->
<!-- Column : BEGIN -->
<td class="stack-column">
<table role="presentation" cellspacing="0" cellpadding="0" border="0">
<tr>
<td style="font-family: sans-serif; font-size: 15px; line-height: 20px; color: #555555; padding: 0 10px 10px; text-align: left;">
Column 2 Maecenas sed ante pellentesque, posuere leo id, eleifend dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
</td>
</tr>
</table>
</td>
<!-- Column : END -->
</tr>
</table>
</td>
</tr>
<!-- 2 Even Columns : END -->
</table>
</center>
</body>
Full code available here

GMAIL Failing to render simple tables in email

Anyone who gets back to me on this is an absolute legend. I sincerely hope this is just a matter of being too close to the code and I am not able to see it any more. In most if not all browsers and email clients the code is rendering fine. But in GMAIL, the bottom table is blowing out the left and the content on the right hand side to the the right.
Here is a shot of it on litmus: https://betalondon.litmus.com/pub/dfe0bd6
And here is the full code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>ENO MAGIC FLUTE e-mail</title>
</head>
<body>
<table align="center" bgcolor="#000000" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" valign="top">
<table width="1030px" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="140" valign="top" bgcolor="#000000" style="line-height: 0px;">
</td>
<td valign="top" width="600" bgcolor="#000000">
<table cellpadding="0" cellspacing="0" border="0" width="600">
<tr>
<td>
<table height="135" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td valign="middle" border="0">
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/header2.jpg" alt="logo" width="600" height="283" border="0"/>
</td>
<td valign="bottom" border="0" width="18" height="15" bg-color="#ffffff">
<br/>
<br/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width="600" cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff">
<tr>
<td width="310" valign="top">
<table cellpadding="0" width="300" cellspacing="4" border="0" style="margin-top: 15px; margin-left: 10px;">
<!--Title text--><tr>
<td align="left">
<span style="text-decoration: uppercase; font-family:Helvetica, Arial; font-size:14px; color:#000000; line-height:120%;">MOZART's<br/>
</span>
<span style="text-decoration: uppercase; font-family:Helvetica, Arial; font-size:25px; color:#000000; line-height:150%;"><strong>THE MAGIC FLUTE</strong></span><br/>
<span style="text-decoration: uppercase; font-family:Helvetica, Arial; font-size:14px; color:#000000; line-height:150%;">13 Sep - 18 Oct</span><br/>
</td>
</tr>
<tr>
<!--Body-text--><td align="left">
<span style="font-family:Helvetica, Arial; font-size:14px; color:#000000; line-height:120%;">
You are invited back to witness the adventure, music and emotion of one of Mozart's most stirring operas, your last chance to witness Nicholas Hytner's lavish production.<br/><br/>
Its distinctive characters, Papageno, Pamina, Sarastro and The Queen of the Night, along with magical sets, costumes and fantasy creatures, make this remarkable opera one not to be missed. Catch one of the final ten performances for what's been considered <em>'one of ENO's most magical interpretations'</em> (The Times)<br/><br/>
This time why not share the enjoyment and bring friends and family.
</span>
<br/>
<br/>
<table style="background:#e4e4e4; border: solid 1px #d7d7d7;">
<tr>
<td style="padding: 5px;">
<span style="font-family: arial, helvetica, sans-serif; color:#000000; font-size: 18px;">
Final 10 performances<br/>
Tickets from £19<br/>
Children under 16 half price<br/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/booknow.png" border="0"/>
</span>
</td>
</tr>
</table>
<br/>
</td>
</tr>
</tr>
</table>
<br/><br/>
<br/><br/>
</td>
<td><img src="http://content.high50.com/emails/20012012/images/1x1.gif" width="35" height="5" border="0" /></td>
<td valign="top">
<br/>
<table width="255" cellpadding="0" cellspacing="0" height="100%">
<tr>
<td valign="top" width="280" align="left">
<font style="font-family:arial; font-size:14px; color:#000000; line-height:1.5em; padding-left: 40px; margin-top: 15px;"><strong>BOX OFFICE: </strong></font><br/>
<span style="font-family: arial; color: #ed1c24; font-size: 18px; padding-left: 40px;">020 7845 95300</span><br/>
<span style="font-family: arial; ">
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/fbook.png" border="0"/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/twitter.png" border="0"/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/youtube.png" border="0"/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/flickr.png" border="0"/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/vimeo.png" border="0"/>
</span>
<br/>
<br/>
<img style="padding-left: 11px;" src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/listen.png" border="0"/></a>
<br/>
<span style="font-family:Georgia, arial, helvetica, sans-serif; font-size:14px; color:#999999; line-height:1.5em; font-style: italic; padding-left: 40px; float: left; text-decoration: none;">
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/arrow.png" style="float: left;" align="left" border="0" hspace="3" valign="middle" border="0"/>Overture<br/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/arrow.png" style="float: left;" align="left" border="0" hspace="3" valign="middle" border="0"/>Queen of the Night<br/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/arrow.png" style="float: left;" align="left" border="0" hspace="3" valign="middle" border="0"/>Papagena and Papageno</span>
<br/>
<br/>
<br/>
<br/>
</td>
</tr>
</table>
</td>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table height="" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff" width="600">
<tr>
<td valign="top">
<hr style="width: 600px; color:#6493b1; border: dotted 1px;"/>
<a href="mailto:?Subject=Book tickets to see The Magic Flute&body=Shall we go and see this opera together?: You are invited back to witness the adventure, music and emotion of one of Mozart's most stirring operas, your last chance to witness Nicholas Hytner's lavish production. Book here
#[http://www.eno.org/see-whats-on/productions/production-page.php?selected_date=13-09-2012&itemid=2130]#"><img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/forward.png" alt="forward this e-mail to a friend" width="" height="" border="0"/></a>
<span style="float: right; font-family: arial;"><strong>FOLLOW US</strong>:
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/fbook.png" border="0"/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/twitter.png" border="0"/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/youtube.png" border="0"/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/flickr.png" border="0"/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/vimeo.png" border="0"/>
</span>
<br/><br/>
<center><span style="text-align: center; font-family: arial; font-size: 20px;"><strong>ENGLISH NATIONAL OPERA</strong></span><br/><span style="text-align: center; font-family: arial; font-size: 12px;">London Coliseum, 38 St. Martin's Lane, London, WC2N 4ES BOX OFFICE: 020 78459300<br/><br/>
<img src="http://www.beta-testing.co.uk.php5-23.ord1-1.websitetestlink.com/eno/artslottery.png" border="0"/><br/><br/>
ENO is a registered charity in England (no 257210)</span><br/><br/>
<span style="font-family: arial; font-size: 11px;">Photos: GTG/ Yunus Durukan</span> <br/>
<hr style="border:1px dotted; color:#6493b1;"><br/><br/>
Unsubscribe</center>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table height="90" border="0" cellpadding="0" cellspacing="0" width="600" bgcolor="#ffffff">
<tr>
<td valign="top" align="center">
<br /><br />
<br />
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td width="140" valign="top" bgcolor="#000000"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Your HTML is invalid. Use the W3C validator service to check it. Pay special attention to errors like this:
Line 91, Column 37: end tag for "table" omitted, but OMITTAG NO was
specified
For me it worked:
1- Open Firefox with Firebug
2- Go to gmail
3- Click "Compose"
4- Right click on the textfield, and choose "Inspect element with Firebug"
5- Search the following code:
[-] <iframe id=":jo" class="Am Al editable" frameborder="0" style="padding: 0px; height: 569.5px; background-color: white;" tabindex="1">
[-] <html style="background:none transparent;min-width:0;">
[+] <head>
[+] <body id=":jo" class="editable LW-avf" style="min-width:0;" hidefocus="true" g_editable="true">
</html>
</iframe>
6- Select <body> and click Edit button
7- Paste your code between <body> and </body> (not included).
8- Close firebug
9- Send the email.

Identifying a page element for Selenium automation

I have a Application Under Test that has a tabular structure like below:
<table width="100%" cellspacing="0" cellpadding="0" border="0" style="background-color: White">
<tbody>
<tr>
<td id="lefthandcol" class="b24-lefthandcol" valign="top" style="width: 130px !important">
<td style="height: 400px; width: 5px">
<td style="height: 400px; width: 5px">
<td valign="top">
<div id="ctl00_ContentPlaceHolder1_MiddlePanel">
<div id="DestinationDiv"></div>
<table>
</td>
<td style="height: 400px; width: 5px">
<td style="height: 400px; width: 5px">
<td width="225" valign="top" align="right" style="background-color: White;">
</tr>
</tbody>
</table>
The question is how do I identify this table since it doesn't have id?
What is generally people do in such scenario?
You should find any unique parent-children relationship and write it with the help of CSS or Xpath:
IWebElement table = driver.FindElement(By.XPath("//table[descendant::*[#id='ctl00_ContentPlaceHolder1_MiddlePanel']]"));
So the table with descendant element with id=ctl00_ContentPlaceHolder1_MiddlePanel will be found.
If id is not available then either go with xpath or css.If you cant write them by your own then you can use tools like firebug and xpath checker..