Try an iterative solution using NestList
sol = NestList[NDSolveValue[{Laplacian[u[x, y], {x, y}] == 0, u[x, 0] == 1/2 Integrate[#[x, y], {y, 1/2, 2}], u[x, 2] == Sin[Pi x],DirichletCondition[u[x, y] == 0, x == 0 || x == 1]}, u, Element[{x, y}, Rectangle[{0, 0}, {1, 2}]]] &, 0 &, 10] // QuietPlot3D[ sol[[-1]] [x, y] , Element[{x, y}, Rectangle[{0, 0}, {1, 2}]],PlotRange -> All]
Image may be NSFW.
Clik here to view.
Iteration converges quite well
Plot3D[ sol[[-2 ]][x, y] - sol[[-1 ]][x, y],Element[{x, y}, Rectangle[{0, 0}, {1, 2}]], PlotRange -> All]
Image may be NSFW.
Clik here to view.
and fullfills the inetgral-bc
Plot[{sol[[-1]][x , 0],1/2 NIntegrate[sol[[-1]][x , yy], {yy, 1/2,2}]}, {x, 0, 1},PlotStyle -> {Blue, {Red, Dashed}}]