РЕДАКТИРОВАТЬ: Это применимо, только если установлено runat="server"
, не применимо в этом случае, но оставляю за собой других на всякий случай, мои извинения за то, что пропустили это в вопросе.
ASP.Net меняет имяэлементы, которые он отображает на основе структуры, в которой они находятся, вы можете попробовать следующее, чтобы получить окончательное имя элемента:
webBrowser1.Document.GetElementById("<%=publishButton-ns.ClientID%>").InvokeMember("click");